@Test public void terminatedWithError() { AssertSubscriber<Integer> ts = AssertSubscriber.create(); DirectProcessor<Integer> tp = DirectProcessor.create(); tp.onError(new RuntimeException("forced failure")); tp.subscribe(ts); Assert.assertFalse("Subscribers present?", tp.hasDownstreams()); Assert.assertFalse("Completed?", tp.hasCompleted()); Assert.assertNotNull("No error?", tp.getError()); Assert.assertTrue("No error?", tp.hasError()); Throwable e = tp.getError(); Assert.assertTrue("Wrong exception? " + e, RuntimeException.class.isInstance(e)); Assert.assertEquals("forced failure", e.getMessage()); ts.assertNoValues() .assertNotComplete() .assertError(RuntimeException.class) .assertErrorMessage("forced failure"); }
Assert.assertNull("Has error?", tp.getError()); Assert.assertFalse("Has error?", tp.hasError()); Assert.assertNotNull("Has error?", tp.getError()); Assert.assertTrue("No error?", tp.hasError()); Throwable e = tp.getError(); Assert.assertTrue("Wrong exception? " + e, RuntimeException.class.isInstance(e)); Assert.assertEquals("forced failure", e.getMessage());
@Test public void terminatedNormally() { AssertSubscriber<Integer> ts = AssertSubscriber.create(); DirectProcessor<Integer> tp = DirectProcessor.create(); tp.onComplete(); tp.subscribe(ts); Assert.assertFalse("Subscribers present?", tp.hasDownstreams()); Assert.assertTrue("Not completed?", tp.hasCompleted()); Assert.assertNull("Has error?", tp.getError()); Assert.assertFalse("Has error?", tp.hasError()); ts.assertNoValues() .assertComplete() .assertNoError(); }
@Test public void normalBackpressured() { DirectProcessor<Integer> tp = DirectProcessor.create(); StepVerifier.create(tp, 0L) .then(() -> { Assert.assertTrue("No subscribers?", tp.hasDownstreams()); Assert.assertFalse("Completed?", tp.hasCompleted()); Assert.assertNull("Has error?", tp.getError()); Assert.assertFalse("Has error?", tp.hasError()); }) .thenRequest(10L) .then(() -> { tp.onNext(1); tp.onNext(2); tp.onComplete(); }) .expectNext(1, 2) .expectComplete() .verify(); Assert.assertFalse("Subscribers present?", tp.hasDownstreams()); Assert.assertTrue("Not completed?", tp.hasCompleted()); Assert.assertNull("Has error?", tp.getError()); Assert.assertFalse("Has error?", tp.hasError()); }
@Test public void normal() { DirectProcessor<Integer> tp = DirectProcessor.create(); StepVerifier.create(tp) .then(() -> { Assert.assertTrue("No subscribers?", tp.hasDownstreams()); Assert.assertFalse("Completed?", tp.hasCompleted()); Assert.assertNull("Has error?", tp.getError()); Assert.assertFalse("Has error?", tp.hasError()); }) .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.hasCompleted()); Assert.assertNull("Has error?", tp.getError()); Assert.assertFalse("Has error?", tp.hasError()); }