@Test public void testThenConsumeWhileWithConsumer() { LongAdder count = new LongAdder(); StepVerifier.create(Flux.range(3, 8)) .expectNextMatches(first -> first == 3) .thenConsumeWhile(v -> v < 9, v -> count.increment()) .expectNext(9) .expectNext(10) .expectComplete() .log() .verify(); assertThat(count.intValue()).isEqualTo(5); }
@Test public void testThenConsumeWhile() { StepVerifier.create(Flux.range(3, 8)) .expectNextMatches(first -> first == 3) .thenConsumeWhile(v -> v < 9) .expectNext(9) .expectNext(10) .expectComplete() .log() .verify(); }
@Test public void testThenConsumeWhileFails() { assertThatExceptionOfType(AssertionError.class) .isThrownBy(() -> StepVerifier.create(Flux.range(3, 8)) .expectNextMatches(first -> first == 3) .thenConsumeWhile(v -> v <= 9) .expectNext(9) .expectNext(10) .expectComplete() .log() .verify()) .withMessageContaining("expectNext(9)"); }
@Test public void testWithDescription() { assertThatExceptionOfType(AssertionError.class) .isThrownBy(() -> StepVerifier.create(Flux.just("foo", "bar", "baz"), 3) .expectNext("foo") .as("first") .expectNext("bar") .as("second") .expectNext("bar") .as("third") .as("this is ignored") .expectComplete() .log() .verify()) .withMessageStartingWith("expectation \"third\" failed"); }
@Test public void testWithDescriptionAndScenarioName() { StepVerifierOptions options = StepVerifierOptions.create() .initialRequest(3) .scenarioName("some scenario name"); StepVerifier stepVerifier = StepVerifier .create(Flux.just("foo", "bar", "baz"), options) .expectNext("foo") .as("first") .expectNext("bar") .as("second") .expectNext("bar") .as("third") .as("this is ignored") .expectComplete() .log(); assertThatExceptionOfType(AssertionError.class) .isThrownBy(stepVerifier::verify) .withMessage("[some scenario name] expectation \"third\" failed (expected value: bar; actual value: baz)"); }