@Test public void failDoubleError() { EmitterProcessor<Integer> ep = EmitterProcessor.create(); StepVerifier.create(ep) .then(() -> { assertThat(ep.getError()).isNull(); ep.onError(new Exception("test")); assertThat(ep.getError()).hasMessage("test"); ep.onError(new Exception("test2")); }) .expectErrorMessage("test") .verifyThenAssertThat() .hasDroppedErrorWithMessage("test2"); }
@Test public void normalAtomicRingBufferBackpressured() { EmitterProcessor<Integer> tp = EmitterProcessor.create(100); StepVerifier.create(tp, 0L) .then(() -> { Assert.assertTrue("No subscribers?", tp.hasDownstreams()); Assert.assertFalse("Completed?", tp.isTerminated()); Assert.assertNull("Has error?", tp.getError()); }) .then(() -> { tp.onNext(1); tp.onNext(2); tp.onComplete(); }) .thenRequest(10L) .expectNext(1, 2) .expectComplete() .verify(); Assert.assertFalse("Subscribers present?", tp.hasDownstreams()); Assert.assertTrue("Not completed?", tp.isTerminated()); Assert.assertNull("Has error?", tp.getError()); }
@Test public void normalBackpressured() { EmitterProcessor<Integer> tp = EmitterProcessor.create(); StepVerifier.create(tp, 0L) .then(() -> { Assert.assertTrue("No subscribers?", tp.hasDownstreams()); Assert.assertFalse("Completed?", tp.isTerminated()); Assert.assertNull("Has error?", tp.getError()); }) .then(() -> { tp.onNext(1); tp.onNext(2); tp.onComplete(); }) .thenRequest(10L) .expectNext(1, 2) .expectComplete() .verify(); Assert.assertFalse("Subscribers present?", tp.hasDownstreams()); Assert.assertTrue("Not completed?", tp.isTerminated()); Assert.assertNull("Has error?", tp.getError()); }
@Test public void normal() { EmitterProcessor<Integer> tp = EmitterProcessor.create(); StepVerifier.create(tp) .then(() -> { Assert.assertTrue("No subscribers?", tp.hasDownstreams()); Assert.assertFalse("Completed?", tp.isTerminated()); Assert.assertNull("Has error?", tp.getError()); }) .then(() -> { tp.onNext(1); tp.onNext(2); }) .expectNext(1, 2) .then(() -> { tp.onNext(3); tp.onComplete(); }) .expectNext(3) .expectComplete() .verify(); Assert.assertFalse("Subscribers present?", tp.hasDownstreams()); Assert.assertTrue("Not completed?", tp.isTerminated()); Assert.assertNull("Has error?", tp.getError()); }