@Override public CompletableSource apply(Object v) throws Exception { return ps.ignoreElements(); } }, new Consumer<Object>() {
@Override public CompletableSource apply(Object v) throws Exception { return ps.ignoreElements(); } }, new Consumer<Object>() {
@Override public CompletableSource apply(Object v) throws Exception { return ps.ignoreElements(); } }, new Consumer<Object>() {
@Test public void disposed() { TestHelper.checkDisposed(PublishSubject.create().ignoreElements().doFinally(this)); } }
@Test public void subscribeActionReportsUnsubscribedAfter() { PublishSubject<String> stringSubject = PublishSubject.create(); Completable completable = stringSubject.ignoreElements(); final AtomicReference<Disposable> disposableRef = new AtomicReference<Disposable>(); Disposable completableSubscription = completable.subscribe(new Action() { @Override public void run() { if (disposableRef.get().isDisposed()) { disposableRef.set(null); } } }); disposableRef.set(completableSubscription); stringSubject.onComplete(); assertTrue("Not unsubscribed?", completableSubscription.isDisposed()); assertNotNull("Unsubscribed before the call to onComplete", disposableRef.get()); }
@Test public void methodTestNoCancel() { PublishSubject<Integer> ps = PublishSubject.create(); ps.ignoreElements().test(false); assertTrue(ps.hasObservers()); } }
@Test public void dispose() { TestHelper.checkDisposed(PublishSubject.create().ignoreElements().unsubscribeOn(new TestScheduler())); }
@Test public void dispose() { TestHelper.checkDisposed(PublishSubject.create().ignoreElements().subscribeOn(new TestScheduler())); }
@Test public void cancel() { PublishSubject<Integer> ps = PublishSubject.create(); TestObserver<Integer> to = ps.ignoreElements().<Integer>toObservable().test(); assertTrue(ps.hasObservers()); to.cancel(); assertFalse(ps.hasObservers()); TestHelper.checkDisposed(ps.ignoreElements().<Integer>toObservable()); }
@Test public void subscribeActionReportsUnsubscribed() { PublishSubject<String> stringSubject = PublishSubject.create(); Completable completable = stringSubject.ignoreElements(); Disposable completableSubscription = completable.subscribe(new Action() { @Override public void run() { } }); stringSubject.onComplete(); assertTrue("Not unsubscribed?", completableSubscription.isDisposed()); }
@Test public void subscribeReportsUnsubscribed() { PublishSubject<String> stringSubject = PublishSubject.create(); Completable completable = stringSubject.ignoreElements(); Disposable completableSubscription = completable.subscribe(); stringSubject.onComplete(); assertTrue("Not unsubscribed?", completableSubscription.isDisposed()); }
@Test public void subscribeAction2ReportsUnsubscribed() { PublishSubject<String> stringSubject = PublishSubject.create(); Completable completable = stringSubject.ignoreElements(); Disposable completableSubscription = completable.subscribe(new Action() { @Override public void run() { } }, new Consumer<Throwable>() { @Override public void accept(Throwable t) { } }); stringSubject.onComplete(); assertTrue("Not unsubscribed?", completableSubscription.isDisposed()); }
@Test public void subscribeAction2ReportsUnsubscribedOnError() { PublishSubject<String> stringSubject = PublishSubject.create(); Completable completable = stringSubject.ignoreElements(); Disposable completableSubscription = completable.subscribe(new Action() { @Override public void run() { } }, new Consumer<Throwable>() { @Override public void accept(Throwable e) { } }); stringSubject.onError(new TestException()); assertTrue("Not unsubscribed?", completableSubscription.isDisposed()); }
@Test public void completeAfterCancel() { TestScheduler scheduler = new TestScheduler(); PublishSubject<Integer> ps = PublishSubject.create(); TestObserver<Void> to = ps.ignoreElements() .unsubscribeOn(scheduler) .test(); to.dispose(); ps.onComplete(); to.assertEmpty(); }
@Test public void shouldUnsubscribeFromUnderlyingSubscriptionOnDispose() { final PublishSubject<String> subject = PublishSubject.create(); final TestScheduler scheduler = new TestScheduler(); final TestObserver<Void> observer = subject.ignoreElements() .timeout(100, TimeUnit.MILLISECONDS, scheduler) .test(); assertTrue(subject.hasObservers()); observer.dispose(); assertFalse(subject.hasObservers()); }
@Test public void subscribeReportsUnsubscribedOnError() { List<Throwable> errors = TestHelper.trackPluginErrors(); try { PublishSubject<String> stringSubject = PublishSubject.create(); Completable completable = stringSubject.ignoreElements(); Disposable completableSubscription = completable.subscribe(); stringSubject.onError(new TestException()); assertTrue("Not unsubscribed?", completableSubscription.isDisposed()); TestHelper.assertError(errors, 0, OnErrorNotImplementedException.class); } finally { RxJavaPlugins.reset(); } }
@Test public void cancelDelayed() { TestScheduler scheduler = new TestScheduler(); PublishSubject<Integer> ps = PublishSubject.create(); ps.ignoreElements() .unsubscribeOn(scheduler) .test() .cancel(); assertTrue(ps.hasObservers()); scheduler.advanceTimeBy(1, TimeUnit.SECONDS); assertFalse(ps.hasObservers()); }
@Test public void subscribeActionReportsUnsubscribedOnError() { List<Throwable> errors = TestHelper.trackPluginErrors(); try { PublishSubject<String> stringSubject = PublishSubject.create(); Completable completable = stringSubject.ignoreElements(); Disposable completableSubscription = completable.subscribe(new Action() { @Override public void run() { } }); stringSubject.onError(new TestException()); assertTrue("Not unsubscribed?", completableSubscription.isDisposed()); TestHelper.assertError(errors, 0, OnErrorNotImplementedException.class); } finally { RxJavaPlugins.reset(); } }
@Test public void crossDisposeOnError() { PublishSubject<Integer> ps = PublishSubject.create(); final TestObserver<Void> to1 = new TestObserver<Void>(); final TestObserver<Void> to2 = new TestObserver<Void>() { @Override public void onError(Throwable ex) { super.onError(ex); to1.cancel(); } }; Completable c = ps.ignoreElements().cache(); c.subscribe(to2); c.subscribe(to1); ps.onError(new TestException()); to1.assertEmpty(); to2.assertFailure(TestException.class); }
@Test public void errorAfterCancel() { List<Throwable> errors = TestHelper.trackPluginErrors(); try { TestScheduler scheduler = new TestScheduler(); PublishSubject<Integer> ps = PublishSubject.create(); TestObserver<Void> to = ps.ignoreElements() .unsubscribeOn(scheduler) .test(); to.dispose(); ps.onError(new TestException()); to.assertEmpty(); TestHelper.assertUndeliverable(errors, 0, TestException.class); } finally { RxJavaPlugins.reset(); } }