@Test public void disposeTwice() { NonoProcessor.create() .subscribe(new Subscriber<Void>() { @Override public void onSubscribe(Subscription s) { s.cancel(); s.cancel(); } @Override public void onNext(Void t) { } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }); }
@Test public void crossCancelError() { final TestSubscriber<Void> ts1 = new TestSubscriber<Void>(); TestSubscriber<Void> ts2 = new TestSubscriber<Void>() { @Override public void onError(Throwable t) { super.onError(t); ts1.cancel(); } }; NonoProcessor np = NonoProcessor.create(); np.subscribe(ts2); np.subscribe(ts1); np.onError(new IOException()); ts1.assertEmpty(); ts2.assertFailure(IOException.class); } }
@Test public void crossCancelComplete() { final TestSubscriber<Void> ts1 = new TestSubscriber<Void>(); TestSubscriber<Void> ts2 = new TestSubscriber<Void>() { @Override public void onComplete() { super.onComplete(); ts1.cancel(); } }; NonoProcessor np = NonoProcessor.create(); np.subscribe(ts2); np.subscribe(ts1); np.onComplete(); ts1.assertEmpty(); ts2.assertResult(); }