BooleanUtils { public static Mono<Boolean> not(Mono<Boolean> value) { return value.map(bool -> !bool); } private  BooleanUtils(); static Mono<Boolean> not(Mono<Boolean> value); static Mono<Boolean> and(Mono<Boolean> value1, Mono<Boolean> value2); static Mono<Boolean> xor(Mono<Boolean> value1, Mono<Boolean> value2); static Mono<Boolean> or(Mono<Boolean> value1, Mono<Boolean> value2); static Mono<Boolean> nand(Mono<Boolean> value1, Mono<Boolean> value2); static Mono<Boolean> nor(Mono<Boolean> value1, Mono<Boolean> value2);  }
@Test public void testNot() { StepVerifier.create(not(TRUE)) .assertNext(bool -> assertThat(bool).as("not(TRUE)").isFalse()) .verifyComplete(); StepVerifier.create(not(FALSE)) .assertNext(bool -> assertThat(bool).as("not(FALSE)").isTrue()) .verifyComplete(); }