Introduce MonoSingle Refaster rule

This commit is contained in:
Rick Ossendrijver
2023-06-29 14:40:55 +02:00
parent 08298c48e3
commit 7b31e32aee
3 changed files with 24 additions and 0 deletions

View File

@@ -418,6 +418,22 @@ final class ReactorRules {
}
}
/**
* Don't unnecessarily transform a {@link Mono} to a {@link Flux} before calling {@link
* Mono#single()}.
*/
static final class MonoSingle<T> {
@BeforeTemplate
Mono<T> before(Mono<T> mono) {
return mono.flux().single();
}
@AfterTemplate
Mono<T> after(Mono<T> mono) {
return mono.single();
}
}
/** Don't unnecessarily pass an empty publisher to {@link Flux#switchIfEmpty(Publisher)}. */
static final class FluxSwitchIfEmptyOfEmptyPublisher<T> {
@BeforeTemplate

View File

@@ -145,6 +145,10 @@ final class ReactorRulesTest implements RefasterRuleCollectionTestCase {
Mono.<ImmutableList<String>>empty().map(ImmutableList::copyOf));
}
Mono<Integer> testMonoSingle() {
return Mono.just(1).flux().single();
}
ImmutableSet<Flux<Integer>> testFluxSwitchIfEmptyOfEmptyPublisher() {
return ImmutableSet.of(
Flux.just(1).switchIfEmpty(Mono.empty()), Flux.just(2).switchIfEmpty(Flux.empty()));

View File

@@ -150,6 +150,10 @@ final class ReactorRulesTest implements RefasterRuleCollectionTestCase {
Mono.<ImmutableList<String>>empty());
}
Mono<Integer> testMonoSingle() {
return Mono.just(1).single();
}
ImmutableSet<Flux<Integer>> testFluxSwitchIfEmptyOfEmptyPublisher() {
return ImmutableSet.of(Flux.just(1), Flux.just(2));
}