@Override public void run() { ps.onComplete(); } };
@Override public void run() { ps.onComplete(); } };
@Override public void run() { ps.onComplete(); } };
@Override public void run() { ps.onComplete(); } };
@Override public void run() { ps.onComplete(); } };
@Override public void run() { sampler.onComplete(); } };
@Override public void run() { ps.onComplete(); } };
@Override public void run() { ps.onComplete(); } };
@Override public void run() { ps.onNext(1); ps.onComplete(); } };
@Override public void run() { ps.onNext(1); ps.onComplete(); } };
@Override public void run() { ps.onNext(1); ps.onComplete(); } };
@Override public void run() { ps.onNext(1); ps.onComplete(); } };
@Override public void onNext(Integer t) { super.onNext(t); if (t == 1) { ps.onComplete(); dispose(); } } };
@Test public void shouldCompleteIfUnderlyingComletes() { Observer<String> observer = TestHelper.mockObserver(); TestObserver<String> to = new TestObserver<String>(observer); withTimeout.subscribe(observer); testScheduler.advanceTimeBy(2, TimeUnit.SECONDS); underlyingSubject.onComplete(); testScheduler.advanceTimeBy(2, TimeUnit.SECONDS); verify(observer).onComplete(); verify(observer, never()).onError(any(Throwable.class)); to.dispose(); }
@Test public void debounceTimedLastIsNotLost() { PublishSubject<Integer> source = PublishSubject.create(); Observer<Object> o = TestHelper.mockObserver(); source.debounce(100, TimeUnit.MILLISECONDS, scheduler).subscribe(o); source.onNext(1); source.onComplete(); scheduler.advanceTimeBy(1, TimeUnit.SECONDS); verify(o).onNext(1); verify(o).onComplete(); verify(o, never()).onError(any(Throwable.class)); }
@Test public void testSecondInfiniteThenFirstCompletes() { s2.onNext("1"); s2.onNext("2"); s1.onNext("a"); inOrder.verify(observer, times(1)).onNext("a-1"); s1.onNext("b"); inOrder.verify(observer, times(1)).onNext("b-2"); s1.onComplete(); inOrder.verify(observer, times(1)).onComplete(); inOrder.verifyNoMoreInteractions(); }
@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 switchOnNextDelayErrorWithError() { PublishSubject<Observable<Integer>> ps = PublishSubject.create(); TestObserver<Integer> to = Observable.switchOnNextDelayError(ps).test(); ps.onNext(Observable.just(1)); ps.onNext(Observable.<Integer>error(new TestException())); ps.onNext(Observable.range(2, 4)); ps.onComplete(); to.assertFailure(TestException.class, 1, 2, 3, 4, 5); }
@Test public void delayed() { PublishSubject<Integer> ps = PublishSubject.create(); Single<Integer> cache = ps.single(-99).cache(); TestObserver<Integer> to1 = cache.test(); TestObserver<Integer> to2 = cache.test(); ps.onNext(1); ps.onComplete(); to1.assertResult(1); to2.assertResult(1); }
@Test public void testCurrentStateMethodsEmpty() { PublishSubject<Object> as = PublishSubject.create(); assertFalse(as.hasThrowable()); assertFalse(as.hasComplete()); assertNull(as.getThrowable()); as.onComplete(); assertFalse(as.hasThrowable()); assertTrue(as.hasComplete()); assertNull(as.getThrowable()); }