@Test(expected = NullPointerException.class) public void modeNull() { Flowable.create(new FlowableOnSubscribe<Object>() { @Override public void subscribe(FlowableEmitter<Object> s) throws Exception { } }, null); }
@Test public void normalError() { Flowable.create(source, BackpressureStrategy.ERROR).subscribe(ts); source.onNext(1); source.onNext(2); source.onComplete(); ts.assertNoValues(); ts.assertError(MissingBackpressureException.class); ts.assertNotComplete(); Assert.assertEquals("create: could not emit value due to lack of requests", ts.errors().get(0).getMessage()); }
@Test public void completeInlineExactLatest() { Flowable.create(sourceNoCancel, BackpressureStrategy.LATEST).subscribe(ts); sourceNoCancel.onNext(1); sourceNoCancel.onComplete(); ts.request(1); ts.assertValues(1); ts.assertNoErrors(); ts.assertComplete(); }
@Test public void completeInline() { Flowable.create(sourceNoCancel, BackpressureStrategy.BUFFER).subscribe(ts); sourceNoCancel.onNext(1); sourceNoCancel.onComplete(); ts.request(2); ts.assertValues(1); ts.assertNoErrors(); ts.assertComplete(); }
@Test public void normalMissing() { Flowable.create(source, BackpressureStrategy.MISSING).subscribe(ts); source.onNext(1); source.onNext(2); source.onComplete(); ts.assertValues(1, 2); ts.assertNoErrors(); ts.assertComplete(); }
@Test public void completeInlineLatest() { Flowable.create(sourceNoCancel, BackpressureStrategy.LATEST).subscribe(ts); sourceNoCancel.onNext(1); sourceNoCancel.onComplete(); ts.request(2); ts.assertValues(1); ts.assertNoErrors(); ts.assertComplete(); }
@Test public void deferredRequest() { Flowable.create(source, BackpressureStrategy.BUFFER).subscribe(ts); source.onNext(1); source.onNext(2); source.onComplete(); ts.request(2); ts.assertValues(1, 2); ts.assertNoErrors(); ts.assertComplete(); }
@Test public void errorInline() { Flowable.create(sourceNoCancel, BackpressureStrategy.BUFFER).subscribe(ts); sourceNoCancel.onNext(1); sourceNoCancel.onError(new TestException()); ts.request(2); ts.assertValues(1); ts.assertError(TestException.class); ts.assertNotComplete(); }
@Test public void normalMissingRequested() { Flowable.create(source, BackpressureStrategy.MISSING).subscribe(ts); ts.request(2); source.onNext(1); source.onNext(2); source.onComplete(); ts.assertValues(1, 2); ts.assertNoErrors(); ts.assertComplete(); }
@Test public void requestExact() { Flowable.create(source, BackpressureStrategy.BUFFER).subscribe(ts); ts.request(2); source.onNext(1); source.onNext(2); source.onComplete(); ts.assertValues(1, 2); ts.assertNoErrors(); ts.assertComplete(); }
@Test public void errorInlineLatest() { Flowable.create(sourceNoCancel, BackpressureStrategy.LATEST).subscribe(ts); sourceNoCancel.onNext(1); sourceNoCancel.onError(new TestException()); ts.request(2); ts.assertValues(1); ts.assertError(TestException.class); ts.assertNotComplete(); }
@Test public void takeOne() { Flowable.create(source, BackpressureStrategy.BUFFER).take(1).subscribe(ts); ts.request(2); source.onNext(1); source.onNext(2); source.onComplete(); ts.assertValues(1); ts.assertNoErrors(); ts.assertComplete(); }
@Test public void takeOneNoCancel() { Flowable.create(sourceNoCancel, BackpressureStrategy.BUFFER).take(1).subscribe(ts); ts.request(2); sourceNoCancel.onNext(1); sourceNoCancel.onNext(2); sourceNoCancel.onComplete(); ts.assertValues(1); ts.assertNoErrors(); ts.assertComplete(); }
@Test public void normalLatest() { Flowable.create(source, BackpressureStrategy.LATEST).subscribe(ts); source.onNext(1); source.onNext(2); source.onComplete(); ts.assertNoValues(); ts.request(1); ts.assertValues(2); ts.assertNoErrors(); ts.assertComplete(); }
@Test public void errorMissing() { Flowable.create(source, BackpressureStrategy.MISSING).subscribe(ts); source.onNext(1); source.onNext(2); source.onError(new TestException()); ts.request(1); ts.assertValues(1, 2); ts.assertError(TestException.class); ts.assertNotComplete(); }
@Test public void takeNoCancel() { Flowable.create(sourceNoCancel, BackpressureStrategy.BUFFER).take(2).subscribe(ts); sourceNoCancel.onNext(1); sourceNoCancel.onNext(2); sourceNoCancel.onComplete(); ts.request(2); ts.assertValues(1, 2); ts.assertNoErrors(); ts.assertComplete(); }
@Test public void unsubscribedMissing() { Flowable.create(source, BackpressureStrategy.MISSING).subscribe(ts); ts.cancel(); source.onNext(1); source.onNext(2); source.onError(new TestException()); ts.request(1); ts.assertNoValues(); ts.assertNoErrors(); ts.assertNotComplete(); }
@Test public void errorLatest() { Flowable.create(source, BackpressureStrategy.LATEST).subscribe(ts); source.onNext(1); source.onNext(2); source.onError(new TestException()); ts.assertNoValues(); ts.request(1); ts.assertValues(2); ts.assertError(TestException.class); ts.assertNotComplete(); }
@Test public void unsubscribedError() { Flowable.create(source, BackpressureStrategy.ERROR).subscribe(ts); ts.cancel(); source.onNext(1); source.onNext(2); source.onError(new TestException()); ts.request(1); ts.assertNoValues(); ts.assertNoErrors(); ts.assertNotComplete(); }
@Test public void unsubscribedBuffer() { Flowable.create(source, BackpressureStrategy.BUFFER).subscribe(ts); ts.cancel(); source.onNext(1); source.onNext(2); source.onError(new TestException()); ts.request(1); ts.assertNoValues(); ts.assertNoErrors(); ts.assertNotComplete(); }