@Override public void onComplete() { DisposableHelper.replace(upstream, null); active = false; signaller.onNext(0); }
@Override public void run() { s.onNext(1); } };
@Override public void onError(Throwable e) { DisposableHelper.replace(upstream, null); active = false; signaller.onNext(e); }
@Override public void run() { s.onNext(1); } };
@Override public void run() { s.onNext(1); } };
@Override public void run() { s.onNext(2); } };
@Override public void run() { s.onNext(1); } };
@Override public void run() { try { Thread.sleep(500); } catch (InterruptedException e) { // ignore } o.onNext(value); } }.start();
@Override public void run() { ps1.onNext(1); ps1.onComplete(); } };
/** * Emit the given values and complete the Subject. * @param <T> the value type * @param p the target subject * @param values the values to emit */ public static <T> void emit(Subject<T> p, T... values) { for (T v : values) { p.onNext(v); } p.onComplete(); }
@Override public void onNext(Integer t) { super.onNext(t); if (t == 1) { ps.onNext(2); ps.onComplete(); } } };
@Override public void onNext(Integer t) { super.onNext(t); if (t == 1) { ps.onNext(2); ps.onComplete(); } } };
@Override public void onNext(Integer t) { super.onNext(t); if (t == 1) { ps.onNext(2); ps.onComplete(); } } };
@Override public void onNext(Integer t) { super.onNext(t); if (t == 1) { ps.onNext(2); ps.onComplete(); } } };
@Override public void onNext(Integer t) { super.onNext(t); if (t == 1) { ps.onNext(2); ps.onComplete(); } } };
@Override public void onNext(Integer t) { super.onNext(t); if (t == 1) { ps.onNext(2); ps.onComplete(); } } };
@Override public void onNext(Integer t) { super.onNext(t); if (t == 1) { ps.onNext(2); ps.onComplete(); } } };
@Test public void testMostRecent() { Subject<String> s = PublishSubject.create(); Iterator<String> it = mostRecent(s, "default").iterator(); assertTrue(it.hasNext()); assertEquals("default", it.next()); assertEquals("default", it.next()); s.onNext("one"); assertTrue(it.hasNext()); assertEquals("one", it.next()); assertEquals("one", it.next()); s.onNext("two"); assertTrue(it.hasNext()); assertEquals("two", it.next()); assertEquals("two", it.next()); s.onComplete(); assertFalse(it.hasNext()); }
@Test public void periodicWindowCompletionRestartTimerBoundedSomeData() { TestScheduler scheduler = new TestScheduler(); Subject<Integer> ps = PublishSubject.<Integer>create(); TestObserver<Observable<Integer>> to = ps.window(5, TimeUnit.MILLISECONDS, scheduler, 2, true) .test(); ps.onNext(1); ps.onNext(2); scheduler.advanceTimeBy(100, TimeUnit.MILLISECONDS); to.assertValueCount(22) .assertNoErrors() .assertNotComplete(); }
@Test public void onNextNull() { Subject<T> p = create(); try { p.onNext(null); fail("No NullPointerException thrown"); } catch (NullPointerException ex) { assertEquals("onNext called with null. Null values are generally not allowed in 2.x operators and sources.", ex.getMessage()); } p.test().assertEmpty().cancel(); }