@Test public void normalBackpressuredArray() { AssertSubscriber<Integer> ts = AssertSubscriber.create(2); Flux.just(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).filter(v -> v % 2 == 0).subscribe(ts); ts.assertValues(2, 4).assertNotComplete().assertNoError(); ts.request(10); ts.assertValues(2, 4, 6, 8, 10).assertComplete().assertNoError(); }
@Test public void asyncFusionBackpressured2() { AssertSubscriber<Object> ts = AssertSubscriber.create(1); UnicastProcessor<Integer> up = UnicastProcessor.create(new ConcurrentLinkedQueue<>()); Flux.just(1).hide().flatMap(w -> up.filter(v -> (v & 1) == 0), false, 1, 1).subscribe(ts); up.onNext(1); up.onNext(2); ts.assertValues(2).assertNoError().assertNotComplete(); up.onComplete(); ts.assertValues(2).assertNoError().assertComplete(); }