@Override public SingleSource<Integer> apply(PublishSubject<Integer> v) throws Exception { return v.singleOrError(); } })
@Override public SingleSource<Integer> apply(Integer v) throws Exception { if (v == 2) { return ps.singleOrError(); } return Single.error(new TestException()); } }, true)
@Test public void withObservableDispose() { TestHelper.checkDisposed(PublishSubject.create().singleOrError().delaySubscription(Observable.just(1))); }
@Test public void disposed() { TestHelper.checkDisposed(PublishSubject.create().singleOrError().doFinally(this)); } }
@Test public void dispose() { TestHelper.checkDisposed(PublishSubject.create().singleOrError().toObservable()); }
@Test public void dispose() { TestHelper.checkDisposed(PublishSubject.<Integer>create().singleOrError().doAfterSuccess(afterSuccess)); }
@Test public void dispose() { TestHelper.checkDisposed(PublishSubject.create().singleOrError().toFlowable()); }
@Test public void dispose() { TestHelper.checkDisposed(PublishSubject.<Integer>create().singleOrError().doAfterTerminate(afterTerminate)); }
@Test public void dispose() { TestHelper.checkDisposed(PublishSubject.create().singleOrError().hide()); }
@Test public void doOnDisposeDispose() { final int[] calls = { 0 }; TestHelper.checkDisposed(PublishSubject.create().singleOrError().doOnDispose(new Action() { @Override public void run() throws Exception { calls[0]++; } })); assertEquals(1, calls[0]); }
@Test public void withPublisherDispose() { TestHelper.checkDisposed(PublishSubject.create().singleOrError().delaySubscription(Flowable.just(1))); }
@Test public void innerSuccessCompletesAfterMain() { PublishSubject<Integer> ps = PublishSubject.create(); TestObserver<Integer> to = Observable.just(1).flatMapSingle(Functions.justFunction(ps.singleOrError())) .test(); ps.onNext(2); ps.onComplete(); to .assertResult(2); }
@Test public void dispose() { TestHelper.checkDisposed(PublishSubject.create().singleOrError().filter(Functions.alwaysTrue())); }
@Test public void dispose() { TestHelper.checkDisposed(PublishSubject.create().singleOrError().subscribeOn(new TestScheduler())); }
final PublishSubject<Integer> ps = PublishSubject.create(); final TestSubscriber<Integer> ts = ps.singleOrError().flattenAsFlowable(new Function<Integer, Iterable<Integer>>() { @Override public Iterable<Integer> apply(Integer v) throws Exception {
@Test public void doOnDisposeCrash() { List<Throwable> errors = TestHelper.trackPluginErrors(); try { PublishSubject<Integer> ps = PublishSubject.create(); ps.singleOrError().doOnDispose(new Action() { @Override public void run() throws Exception { throw new TestException(); } }) .test() .cancel(); TestHelper.assertUndeliverable(errors, 0, TestException.class); } finally { RxJavaPlugins.reset(); } }
@Test public void cancelShouldUnsubscribe() { PublishSubject<String> single = PublishSubject.create(); assertFalse(single.hasObservers()); T future = toFuture(single.singleOrError()); assertTrue(single.hasObservers()); future.cancel(true); assertFalse(single.hasObservers()); }