void emit(long idx, T value) { if (idx == index) { downstream.onNext(value); } }
@Override public void onNext(T t) { if (done) { return; } downstream.onNext(t); }
@Override public void run() { observer.onNext(value); } }, delay, TimeUnit.MILLISECONDS);
@Override public void onComplete() { if (!done) { done = true; downstream.onNext(false); downstream.onComplete(); } }
@Override public void onComplete() { while (!buffers.isEmpty()) { downstream.onNext(buffers.poll()); } downstream.onComplete(); } }
@Override public void onNext(T t) { if (t == null) { onError(new NullPointerException("onNext called with null. Null values are generally not allowed in 2.x operators and sources.")); return; } if (!isDisposed()) { observer.onNext(t); } }
@Override public void onError(Throwable t) { Notification<T> v = Notification.createOnError(t); downstream.onNext(v); downstream.onComplete(); }
@Override public void run() { if (!isDisposed()) { downstream.onNext(0L); lazySet(EmptyDisposable.INSTANCE); downstream.onComplete(); } }
@Override public void onNext(T t) { long idx = get(); if (idx == Long.MAX_VALUE || !compareAndSet(idx, idx + 1)) { return; } task.get().dispose(); downstream.onNext(t); startTimeout(idx + 1); }
@Test public void testCast() { Observable<?> source = Observable.just(1, 2); Observable<Integer> observable = source.cast(Integer.class); Observer<Integer> observer = TestHelper.mockObserver(); observable.subscribe(observer); verify(observer, times(1)).onNext(1); verify(observer, times(1)).onNext(1); verify(observer, never()).onError( any(Throwable.class)); verify(observer, times(1)).onComplete(); }
@Test public void testSkipAndCountGaplessBuffers() { Observable<String> source = Observable.just("one", "two", "three", "four", "five"); Observable<List<String>> buffered = source.buffer(3, 3); buffered.subscribe(observer); InOrder inOrder = Mockito.inOrder(observer); inOrder.verify(observer, Mockito.times(1)).onNext(list("one", "two", "three")); inOrder.verify(observer, Mockito.times(1)).onNext(list("four", "five")); inOrder.verify(observer, Mockito.never()).onNext(Mockito.<String>anyList()); inOrder.verify(observer, Mockito.never()).onError(Mockito.any(Throwable.class)); inOrder.verify(observer, Mockito.times(1)).onComplete(); }
@Test public void testCombineLatest3TypesB() { Function3<String, Integer, int[], String> combineLatestFunction = getConcatStringIntegerIntArrayCombineLatestFunction(); /* define an Observer to receive aggregated events */ Observer<String> observer = TestHelper.mockObserver(); Observable<String> w = Observable.combineLatest(Observable.just("one"), Observable.just(2), Observable.just(new int[] { 4, 5, 6 }, new int[] { 7, 8 }), combineLatestFunction); w.subscribe(observer); verify(observer, never()).onError(any(Throwable.class)); verify(observer, times(1)).onComplete(); verify(observer, times(1)).onNext("one2[4, 5, 6]"); verify(observer, times(1)).onNext("one2[7, 8]"); }
@Test public void testIsEmptyWithTwoItemsObservable() { Observable<Integer> w = Observable.just(1, 2); Observable<Boolean> observable = w.isEmpty().toObservable(); Observer<Boolean> observer = TestHelper.mockObserver(); observable.subscribe(observer); verify(observer, never()).onNext(true); verify(observer, times(1)).onNext(false); verify(observer, never()).onError(any(Throwable.class)); verify(observer, times(1)).onComplete(); }
@Test public void testIsEmptyWithOneItemObservable() { Observable<Integer> w = Observable.just(1); Observable<Boolean> observable = w.isEmpty().toObservable(); Observer<Boolean> observer = TestHelper.mockObserver(); observable.subscribe(observer); verify(observer, never()).onNext(true); verify(observer, times(1)).onNext(false); verify(observer, never()).onError(any(Throwable.class)); verify(observer, times(1)).onComplete(); }
@Test(timeout = 2000) public void bufferWithSizeSkipTake1() { Observable<Integer> source = Observable.just(1).repeat(); Observable<List<Integer>> result = source.buffer(2, 3).take(1); Observer<Object> o = TestHelper.mockObserver(); result.subscribe(o); verify(o).onNext(Arrays.asList(1, 1)); verify(o).onComplete(); verify(o, never()).onError(any(Throwable.class)); }
@Test public void testConcat() { Observer<String> observer = TestHelper.mockObserver(); final String[] o = { "1", "3", "5", "7" }; final String[] e = { "2", "4", "6" }; final Observable<String> odds = Observable.fromArray(o); final Observable<String> even = Observable.fromArray(e); Observable<String> concat = Observable.concat(odds, even); concat.subscribe(observer); verify(observer, times(7)).onNext(anyString()); }
@Override protected void subscribeActual(Observer<? super Integer> observer) { observer.onSubscribe(Disposables.empty()); observer.onNext(1); observer.onError(new TestException("outer")); } }
@Override protected void subscribeActual(Observer<? super Integer> observer) { Disposable bs1 = Disposables.empty(); observer.onSubscribe(bs1); assertFalse(((Disposable)observer).isDisposed()); observer.onNext(1); assertTrue(((Disposable)observer).isDisposed()); assertTrue(bs1.isDisposed()); } }.concatWith(Single.just(100))
@Override protected void subscribeActual(Observer<? super Integer> observer) { Disposable bs1 = Disposables.empty(); observer.onSubscribe(bs1); assertFalse(((Disposable)observer).isDisposed()); observer.onNext(1); assertTrue(((Disposable)observer).isDisposed()); assertTrue(bs1.isDisposed()); } }.concatWith(Maybe.just(100))