@Override public void run() { ms.onSuccess(3); } };
@Override public void run() { ss.onSuccess(1); } };
@Override public void run() { ss.onSuccess(1); } };
@Override public void run() { cs.onSuccess(1); } };
@Override public void run() { cs.onSuccess(1); } };
@Override public void run() { cs.onSuccess(1); } };
@Override public void run() { subj.onSuccess(1); } };
@Override public void run() { ms.onSuccess(3); } };
@Override public void onNext(Integer t) { super.onNext(t); if (t == 1) { cs.onSuccess(2); } } });
@Override public void onNext(Integer t) { super.onNext(t); if (t == 1) { cs.onSuccess(2); } } });
@Override public void onNext(Integer t) { super.onNext(t); if (t == 1) { cs.onSuccess(2); } } });
@Override public void onNext(Integer t) { super.onNext(t); if (t == 1) { cs.onSuccess(2); } } });
@Test public void nullValue() { SingleSubject<Integer> ss = SingleSubject.create(); try { ss.onSuccess(null); fail("No NullPointerException thrown"); } catch (NullPointerException ex) { assertEquals("onSuccess called with null. Null values are generally not allowed in 2.x operators and sources.", ex.getMessage()); } ss.test().assertEmpty().cancel(); }
@Test public void scalarSource() { SingleSubject<Integer> ss = SingleSubject.create(); TestObserver<Integer> to = Observable.just(1) .switchMapSingle(Functions.justFunction(ss)) .test(); assertTrue(ss.hasObservers()); to.assertEmpty(); ss.onSuccess(2); to.assertResult(2); } }
@Test public void onSubscribeDispose() { SingleSubject<Integer> ss = SingleSubject.create(); Disposable d = Disposables.empty(); ss.onSubscribe(d); assertFalse(d.isDisposed()); ss.onSuccess(1); d = Disposables.empty(); ss.onSubscribe(d); assertTrue(d.isDisposed()); }
@Test public void checkUnboundedInnerQueue() { SingleSubject<Integer> ss = SingleSubject.create(); @SuppressWarnings("unchecked") TestObserver<Integer> to = Observable .fromArray(ss, Single.just(2), Single.just(3), Single.just(4)) .concatMapSingle(Functions.<Single<Integer>>identity(), 2) .test(); to.assertEmpty(); ss.onSuccess(1); to.assertResult(1, 2, 3, 4); }
@Test public void untilSingleMainSuccess() { SingleSubject<Integer> main = SingleSubject.create(); SingleSubject<Integer> other = SingleSubject.create(); TestObserver<Integer> to = main.takeUntil(other).test(); assertTrue("Main no observers?", main.hasObservers()); assertTrue("Other no observers?", other.hasObservers()); main.onSuccess(1); assertFalse("Main has observers?", main.hasObservers()); assertFalse("Other has observers?", other.hasObservers()); to.assertResult(1); }
@Test public void untilCompletableMainSuccess() { SingleSubject<Integer> main = SingleSubject.create(); CompletableSubject other = CompletableSubject.create(); TestObserver<Integer> to = main.takeUntil(other).test(); assertTrue("Main no observers?", main.hasObservers()); assertTrue("Other no observers?", other.hasObservers()); main.onSuccess(1); assertFalse("Main has observers?", main.hasObservers()); assertFalse("Other has observers?", other.hasObservers()); to.assertResult(1); }
@Test public void untilSingleOtherSuccess() { SingleSubject<Integer> main = SingleSubject.create(); SingleSubject<Integer> other = SingleSubject.create(); TestObserver<Integer> to = main.takeUntil(other).test(); assertTrue("Main no observers?", main.hasObservers()); assertTrue("Other no observers?", other.hasObservers()); other.onSuccess(1); assertFalse("Main has observers?", main.hasObservers()); assertFalse("Other has observers?", other.hasObservers()); to.assertFailure(CancellationException.class); }
@Test public void untilPublisherMainSuccess() { SingleSubject<Integer> main = SingleSubject.create(); PublishProcessor<Integer> other = PublishProcessor.create(); TestObserver<Integer> to = main.takeUntil(other).test(); assertTrue("Main no observers?", main.hasObservers()); assertTrue("Other no observers?", other.hasSubscribers()); main.onSuccess(1); assertFalse("Main has observers?", main.hasObservers()); assertFalse("Other has observers?", other.hasSubscribers()); to.assertResult(1); }