@Override public void onComplete() { s = SubscriptionHelper.CANCELLED; actual.onSuccess(value); }
@Override public void onSuccess(Object value) { d = DisposableHelper.DISPOSED; actual.onSuccess(1L); }
@Override public void onComplete() { R v = value; value = null; s = SubscriptionHelper.CANCELLED; actual.onSuccess(v); }
@Override public void onSuccess(T value) { if (done) { return; } actual.onSuccess(value); }
@Override public void onComplete() { d = DisposableHelper.DISPOSED; actual.onSuccess(0L); }
@Override public void onComplete() { if (!done) { done = true; actual.onSuccess(false); } }
@Override public void onSuccess(T t) { actual.onSuccess(t); onAfterTerminate(); }
@SuppressWarnings("unchecked") @Override public void onSuccess(T value) { this.value = value; for (CacheDisposable<T> d : observers.getAndSet(TERMINATED)) { if (!d.isDisposed()) { d.actual.onSuccess(value); } } }
@Override public void onComplete() { d = DisposableHelper.DISPOSED; if (defaultValue != null) { actual.onSuccess(defaultValue); } else { actual.onError(new NoSuchElementException("The MaybeSource is empty")); } } }
@Override public void onSuccess(T t) { actual.onSuccess(t); try { onAfterSuccess.accept(t); } catch (Throwable ex) { Exceptions.throwIfFatal(ex); // remember, onSuccess is a terminal event and we can't call onError RxJavaCommonPlugins.onError(ex); } }
@Override public void onSuccess(T value) { R v; try { v = ObjectHelper.requireNonNull(mapper.apply(value), "The mapper function returned a null value."); } catch (Throwable e) { Exceptions.throwIfFatal(e); onError(e); return; } t.onSuccess(v); }
@Test public void testToMultimapWithValueSelector() { Observable<String> source = Observable.just("a", "b", "cc", "dd"); Single<Map<Integer, Collection<String>>> mapped = source.toMultimap(lengthFunc, duplicate); Map<Integer, Collection<String>> expected = new HashMap<Integer, Collection<String>>(); expected.put(1, Arrays.asList("aa", "bb")); expected.put(2, Arrays.asList("cccc", "dddd")); mapped.subscribe(singleObserver); verify(singleObserver, never()).onError(any(Throwable.class)); verify(singleObserver, times(1)).onSuccess(expected); }
@Test public void testFirstOrElseWithPredicateOfNoneMatchingThePredicate() { Flowable<String> src = Flowable.just("a", "b", "c"); first(src.filter(IS_D), "default").subscribe(wo); verify(wo, times(1)).onSuccess(anyString()); verify(wo, times(1)).onSuccess("default"); verify(wo, never()).onError(any(Throwable.class)); }
@Test public void testIsEmptyWithOneItem() { Flowable<Integer> w = Flowable.just(1); Single<Boolean> observable = RxJava3Interop.isEmpty(w); SingleObserver<Boolean> observer = TestHelper.mockSingleObserver(); observable.subscribe(observer); verify(observer, never()).onSuccess(true); verify(observer, times(1)).onSuccess(false); verify(observer, never()).onError(any(Throwable.class)); }
@Test @Ignore("null values are not allowed") public void testContainsWithNull() { Single<Boolean> o = Observable.just("a", "b", null).contains(null); SingleObserver<Object> observer = TestHelper.mockSingleObserver(); o.subscribe(observer); verify(observer, times(1)).onSuccess(true); verify(observer, never()).onSuccess(false); verify(observer, never()).onError( any(Throwable.class)); }
@Test public void testList() { Flowable<String> w = Flowable.fromIterable(Arrays.asList("one", "two", "three")); Single<List<String>> observable = toList(w); SingleObserver<List<String>> observer = TestHelper.mockSingleObserver(); observable.subscribe(observer); verify(observer, times(1)).onSuccess(Arrays.asList("one", "two", "three")); verify(observer, Mockito.never()).onError(any(Throwable.class)); }
@Test public void testFirstOrDefaultWithEmpty() { Single<Integer> o = Observable.<Integer> empty() .first(1); o.subscribe(wo); InOrder inOrder = inOrder(wo); inOrder.verify(wo, times(1)).onSuccess(1); inOrder.verifyNoMoreInteractions(); }
@Test public void testSingleOrDefaultWithEmpty() { Single<Integer> o = Observable.<Integer> empty() .single(1); SingleObserver<Integer> observer = TestHelper.mockSingleObserver(); o.subscribe(observer); InOrder inOrder = inOrder(observer); inOrder.verify(observer, times(1)).onSuccess(1); inOrder.verifyNoMoreInteractions(); }
@Test public void testSingleOrDefault() { Single<Integer> observable = single(Flowable.just(1), 2); SingleObserver<Integer> observer = TestHelper.mockSingleObserver(); observable.subscribe(observer); InOrder inOrder = inOrder(observer); inOrder.verify(observer, times(1)).onSuccess(1); inOrder.verifyNoMoreInteractions(); }