@Override public void onComplete() { if (!terminate) { terminate = true; actual.onComplete(); } } }
@Override public void onComplete() { if (done) { return; } done = true; actual.onComplete(); } }
@Override public void onComplete() { if (!done) { done = true; collection.clear(); actual.onComplete(); } }
@Override public void onComplete() { U c = collection; collection = null; actual.onNext(c); actual.onComplete(); } }
@Override public void onComplete() { U b = buffer; buffer = null; if (b != null && !b.isEmpty()) { actual.onNext(b); } actual.onComplete(); } }
@Override public void onComplete() { if (done) { return; } done = true; actual.onNext(true); actual.onComplete(); }
@Override public void onComplete() { List<GroupedUnicast<K, V>> list = new ArrayList<GroupedUnicast<K, V>>(groups.values()); groups.clear(); for (GroupedUnicast<K, V> e : list) { e.onComplete(); } actual.onComplete(); }
void emit() { T v = value; if (v != null) { value = null; actual.onNext(v); } actual.onComplete(); }
@Override public void onError(Throwable t) { Notification<T> v = Notification.createOnError(t); actual.onNext(v); actual.onComplete(); }
@Override public void onComplete() { done = true; if (enter()) { drainLoop(); } disposeTimer(); actual.onComplete(); }
@Override public void onComplete() { done = true; if (enter()) { drainLoop(); } actual.onComplete(); disposeWorker(); }
@Test public void testToMultimapObservable() { Observable<String> source = Observable.just("a", "b", "cc", "dd"); Observable<Map<Integer, Collection<String>>> mapped = source.toMultimap(lengthFunc).toObservable(); Map<Integer, Collection<String>> expected = new HashMap<Integer, Collection<String>>(); expected.put(1, Arrays.asList("a", "b")); expected.put(2, Arrays.asList("cc", "dd")); mapped.subscribe(objectObserver); verify(objectObserver, never()).onError(any(Throwable.class)); verify(objectObserver, times(1)).onNext(expected); verify(objectObserver, times(1)).onComplete(); }
@Override public void subscribe(Observer<? super Integer> t1) { subscribeThread.set(Thread.currentThread()); t1.onSubscribe(subscription); t1.onNext(1); t1.onNext(2); t1.onComplete(); } });
@Override public void subscribe(Observer<? super Integer> t1) { subscribeThread.set(Thread.currentThread()); t1.onSubscribe(subscription); t1.onNext(1); t1.onNext(2); t1.onComplete(); } });
@Override public void run() { if (get() == START && compareAndSet(START, ON_NEXT)) { observer.onNext(value); if (get() == ON_NEXT) { lazySet(ON_COMPLETE); observer.onComplete(); } } } }
@Test public void testSkipLast2() { Observable<String> o = Observable.fromIterable(Arrays.asList("one", "two")).skipLast(2); Observer<String> observer = TestHelper.mockObserver(); o.subscribe(observer); verify(observer, never()).onNext(any(String.class)); verify(observer, never()).onError(any(Throwable.class)); verify(observer, times(1)).onComplete(); }
@Test public void testTimerOnce() { Observable.timer(100, TimeUnit.MILLISECONDS, scheduler).subscribe(observer); scheduler.advanceTimeBy(100, TimeUnit.MILLISECONDS); verify(observer, times(1)).onNext(0L); verify(observer, times(1)).onComplete(); verify(observer, never()).onError(any(Throwable.class)); }
@Test public void testContainsObservable() { Observable<Boolean> o = Observable.just("a", "b", "c").contains("b").toObservable(); Observer<Boolean> observer = TestHelper.mockObserver(); o.subscribe(observer); verify(observer, times(1)).onNext(true); verify(observer, never()).onNext(false); verify(observer, never()).onError( any(Throwable.class)); verify(observer, times(1)).onComplete(); }
@Test public void testSecondFails() { s1.onNext("a"); s1.onNext("b"); s2.onError(new RuntimeException("Forced failure")); inOrder.verify(observer, times(1)).onError(any(RuntimeException.class)); s2.onNext("1"); s2.onNext("2"); inOrder.verify(observer, never()).onComplete(); inOrder.verify(observer, never()).onNext(any(String.class)); inOrder.verifyNoMoreInteractions(); }
@Override protected void subscribeActual(Observer<? super Integer> observer) { observer.onSubscribe(Disposables.empty()); observer.onNext(1); observer.onNext(2); observer.onError(new TestException("First")); observer.onNext(3); observer.onComplete(); observer.onError(new TestException("Second")); } }