@Override public void onError(Throwable t) { DisposableHelper.dispose(this); actual.onError(t); }
@Override public void innerError(Throwable e) { s.dispose(); actual.onError(e); } }
@Override public void onError(Throwable t) { if (done) { RxJavaCommonPlugins.onError(t); return; } done = true; actual.onError(t); }
@Override public void onError(Throwable t) { buffers.clear(); actual.onError(t); }
@Override public void onError(Throwable t) { DisposableHelper.dispose(other); actual.onError(t); }
@Override public void onError(Throwable t) { DisposableHelper.dispose(other); actual.onError(t); }
@Override public void onError(Throwable t) { if (done) { RxJavaCommonPlugins.onError(t); return; } done = true; actual.onError(t); }
@Override public void run() { observer.onError(error); } }, delay, TimeUnit.MILLISECONDS);
@Override public void onError(Throwable t) { List<GroupedUnicast<K, V>> list = new ArrayList<GroupedUnicast<K, V>>(groups.values()); groups.clear(); for (GroupedUnicast<K, V> e : list) { e.onError(t); } actual.onError(t); }
@Override public void onError(Throwable t) { if (done) { RxJavaCommonPlugins.onError(t); return; } done = true; actual.onError(t); }
void errorAll(Observer<?> a) { Throwable ex = ExceptionHelper.terminate(error); for (UnicastSubject<TRight> up : lefts.values()) { up.onError(ex); } lefts.clear(); rights.clear(); a.onError(ex); }
void onError(Throwable t) { if (isDisposed()) { RxJavaCommonPlugins.onError(t); } else { actual.onError(t); } } }
@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(); }
@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(); }
@Test public void testStartEmptyCompleteWithOne() { BehaviorSubject<Integer> source = BehaviorSubject.create(); final Observer<Object> o = TestHelper.mockObserver(); source.onNext(1); source.onComplete(); source.onNext(2); source.subscribe(o); verify(o).onComplete(); verify(o, never()).onError(any(Throwable.class)); verify(o, never()).onNext(any()); }
@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")); } }