@Override public Observable<Integer> apply(Integer t) { Observable<Integer> o = Observable.just(t) .subscribeOn(sch) ; Subject<Integer> subject = UnicastSubject.create(); o.subscribe(subject); return subject; } };
@Test(expected = IllegalArgumentException.class) public void testMapWithIssue417() { Observable.just(1).observeOn(Schedulers.computation()) .map(new Function<Integer, Integer>() { @Override public Integer apply(Integer arg0) { throw new IllegalArgumentException("any error"); } }).blockingSingle(); }
@Override public Object apply(Observable<Integer> o) throws Exception { return Observable.just(1).window(o).flatMap(new Function<Observable<Integer>, ObservableSource<Integer>>() { @Override public ObservableSource<Integer> apply(Observable<Integer> v) throws Exception { return v; } }); } }, false, 1, 1, (Object[])null);
@Override public Object apply(Observable<Object> o) throws Exception { return o.window(Observable.never()).flatMap(new Function<Observable<Object>, ObservableSource<Object>>() { @Override public ObservableSource<Object> apply(Observable<Object> v) throws Exception { return v; } }); } }, false, 1, 1, 1);
@Test public void innerEscapeCompleted() { Observable<Integer> source = Observable.just(0); Observable<Integer> m = source.groupBy(identity, dbl).flatMap(FLATTEN_INTEGER); TestObserver<Object> to = new TestObserver<Object>(); m.subscribe(to); to.awaitTerminalEvent(); to.assertNoErrors(); System.out.println(to.values()); }
@Ignore("Not sure what this does") @Test public void addOnNextValueExceptionAdded() throws Exception { Observer<BadToString> observer = new BadToStringObserver(); Observable.just(new BadToString(false)) .map(new Function<BadToString, BadToString>() { @Override public BadToString apply(BadToString badToString) { throw new IllegalArgumentException("Failure while handling"); } }).subscribe(observer); }
@Test public void testTake2() { Observable<Integer> o = Observable.just(1, 2, 3, 4, 5); Iterable<String> it = Arrays.asList("a", "b", "c", "d", "e"); SquareStr squareStr = new SquareStr(); o.map(squareStr).zipWith(it, concat2Strings).take(2).subscribe(printer); assertEquals(2, squareStr.counter.get()); }
@Test public void testTakeFirstWithPredicateOfNoneMatchingThePredicate() { Observable<Integer> o = Observable.just(1, 3, 5, 7, 9, 7, 5, 3, 1); o.filter(IS_EVEN).take(1).subscribe(w); verify(w, never()).onNext(anyInt()); verify(w, times(1)).onComplete(); verify(w, never()).onError(any(Throwable.class)); }
@Test public void testFirstOrElseWithPredicateOfNoneMatchingThePredicateObservable() { Observable<String> src = Observable.just("a", "b", "c"); src.filter(IS_D).first("default").toObservable().subscribe(w); verify(w, times(1)).onNext(anyString()); verify(w, times(1)).onNext("default"); verify(w, never()).onError(any(Throwable.class)); verify(w, times(1)).onComplete(); }
@Test public void nonFusedConditional() { TestObserver<Integer> to = ObserverFusion.newTest(QueueFuseable.SYNC); Observable.range(1, 5).hide() .doFinally(this) .filter(Functions.alwaysTrue()) .subscribe(to); ObserverFusion.assertFusion(to, QueueFuseable.NONE) .assertResult(1, 2, 3, 4, 5); assertEquals(1, calls); }
@Test public void testError2() { Observable<Integer> source = Observable.concat(Observable.just(0), Observable.<Integer> error(new TestException("Forced failure"))); Observable<Integer> m = source.groupBy(identity, dbl).flatMap(FLATTEN_INTEGER); TestObserver<Object> to = new TestObserver<Object>(); m.subscribe(to); to.awaitTerminalEvent(); assertEquals(1, to.errorCount()); to.assertValueCount(1); }
/** * This is testing a no-op path since it uses Schedulers.immediate() which will not do scheduling. */ @Test public void testObserveOn() { Observer<Integer> observer = TestHelper.mockObserver(); Observable.just(1, 2, 3).observeOn(ImmediateThinScheduler.INSTANCE).subscribe(observer); verify(observer, times(1)).onNext(1); verify(observer, times(1)).onNext(2); verify(observer, times(1)).onNext(3); verify(observer, times(1)).onComplete(); }
@Test public void testFlatMapTransformsOnErrorFuncThrows() { Observable<Integer> onNext = Observable.fromIterable(Arrays.asList(1, 2, 3)); Observable<Integer> onComplete = Observable.fromIterable(Arrays.asList(4)); Observable<Integer> onError = Observable.fromIterable(Arrays.asList(5)); Observable<Integer> source = Observable.error(new TestException()); Observer<Object> o = TestHelper.mockObserver(); source.flatMap(just(onNext), funcThrow((Throwable) null, onError), just0(onComplete)).subscribe(o); verify(o).onError(any(CompositeException.class)); verify(o, never()).onNext(any()); verify(o, never()).onComplete(); }
@Test public void testFlatMapTransformsOnCompletedFuncThrows() { Observable<Integer> onNext = Observable.fromIterable(Arrays.asList(1, 2, 3)); Observable<Integer> onComplete = Observable.fromIterable(Arrays.asList(4)); Observable<Integer> onError = Observable.fromIterable(Arrays.asList(5)); Observable<Integer> source = Observable.fromIterable(Arrays.<Integer> asList()); Observer<Object> o = TestHelper.mockObserver(); source.flatMap(just(onNext), just(onError), funcThrow0(onComplete)).subscribe(o); verify(o).onError(any(TestException.class)); verify(o, never()).onNext(any()); verify(o, never()).onComplete(); }