@Test public void bufferSupplierThrows() { AssertSubscriber<List<Integer>> ts = AssertSubscriber.create(); DirectProcessor<Integer> sp1 = DirectProcessor.create(); DirectProcessor<Integer> sp2 = DirectProcessor.create(); sp1.buffer(sp2, (Supplier<List<Integer>>) () -> { throw new RuntimeException("forced failure"); }) .subscribe(ts); Assert.assertFalse("sp1 has subscribers?", sp1.hasDownstreams()); Assert.assertFalse("sp2 has subscribers?", sp2.hasDownstreams()); ts.assertNoValues() .assertError(RuntimeException.class) .assertErrorMessage("forced failure") .assertNotComplete(); }
@Test public void bufferSupplierThrowsLater() { AssertSubscriber<List<Integer>> ts = AssertSubscriber.create(); DirectProcessor<Integer> sp1 = DirectProcessor.create(); DirectProcessor<Integer> sp2 = DirectProcessor.create(); int count[] = {1}; sp1.buffer(sp2, (Supplier<List<Integer>>) () -> { if (count[0]-- > 0) { return new ArrayList<>(); } throw new RuntimeException("forced failure"); }) .subscribe(ts); sp1.onNext(1); sp1.onNext(2); sp2.onNext(1); Assert.assertFalse("sp1 has subscribers?", sp1.hasDownstreams()); Assert.assertFalse("sp2 has subscribers?", sp2.hasDownstreams()); ts.assertNoValues() .assertError(RuntimeException.class) .assertErrorMessage("forced failure") .assertNotComplete(); }
@Test public void bufferSupplierReturnsNUll() { AssertSubscriber<List<Integer>> ts = AssertSubscriber.create(); DirectProcessor<Integer> sp1 = DirectProcessor.create(); DirectProcessor<Integer> sp2 = DirectProcessor.create(); sp1.buffer(sp2, (Supplier<List<Integer>>) () -> null) .subscribe(ts); Assert.assertFalse("sp1 has subscribers?", sp1.hasDownstreams()); Assert.assertFalse("sp2 has subscribers?", sp2.hasDownstreams()); ts.assertNoValues() .assertError(NullPointerException.class) .assertNotComplete(); }
DirectProcessor<Integer> sp2 = DirectProcessor.create(); sp1.buffer(sp2) .subscribe(ts);
DirectProcessor<Integer> sp2 = DirectProcessor.create(); sp1.buffer(sp2) .subscribe(ts);
DirectProcessor<Integer> sp2 = DirectProcessor.create(); sp1.buffer(sp2) .subscribe(ts);