@Override public Observable<String> apply(Resource resource) { return Observable.fromArray(resource.getTextFromWeb().split(" ")) .concatWith(Observable.<String>error(new RuntimeException())); } };
@SuppressWarnings("unchecked") @Test public void mergeIterableDelayErrorWithError() { Observable.mergeDelayError( Arrays.asList(Observable.just(1).concatWith(Observable.<Integer>error(new TestException())), Observable.just(2))) .test() .assertFailure(TestException.class, 1, 2); }
@Test public void testConcatOuterBackpressure() { assertEquals(1, (int) Observable.<Integer> empty() .concatWith(Observable.just(1)) .take(1) .blockingSingle()); }
@Test public void testConcatWith() { TestObserver<Integer> ts = new TestObserver<Integer>(); Observable.just(1).concatWith(Observable.just(2)).subscribe(ts); ts.assertValues(1, 2); }
@Test public void takeLastTimeDelayError() { Observable.just(1, 2).concatWith(Observable.<Integer>error(new TestException())) .takeLast(1, TimeUnit.MINUTES, true) .test() .assertFailure(TestException.class, 1, 2); }
@SuppressWarnings("unchecked") @Test public void concatIterableDelayErrorWithError() { Observable.concatDelayError( Arrays.asList(Observable.just(1), Observable.just(2), Observable.just(3).concatWith(Observable.<Integer>error(new TestException())), Observable.just(4))) .test() .assertFailure(TestException.class, 1, 2, 3, 4); }
@Test public void normalNonDelayErrorOuter() { Observable.range(1, 10).concatWith(Observable.<Integer>error(new TestException())) .flatMapCompletable(new Function<Integer, CompletableSource>() { @Override public CompletableSource apply(Integer v) throws Exception { return Completable.complete(); } }, false) .test() .assertFailure(TestException.class); }
@Test public void takeLastTimeDelayErrorCustomScheduler() { Observable.just(1, 2).concatWith(Observable.<Integer>error(new TestException())) .takeLast(1, TimeUnit.MINUTES, Schedulers.io(), true) .test() .assertFailure(TestException.class, 1, 2); }
@Test public void skipLastTimedDefaultSchedulerDelayError() { Observable.just(1).concatWith(Observable.just(2).delay(500, TimeUnit.MILLISECONDS)) .skipLast(300, TimeUnit.MILLISECONDS, true) .test() .awaitDone(5, TimeUnit.SECONDS) .assertResult(1); }
@Test public void delayWithTimeDelayError() throws Exception { Observable.just(1).concatWith(Observable.<Integer>error(new TestException())) .delay(100, TimeUnit.MILLISECONDS, true) .test() .awaitDone(5, TimeUnit.SECONDS) .assertFailure(TestException.class, 1); }
@Test public void skipLastTimedCustomSchedulerDelayError() { Observable.just(1).concatWith(Observable.just(2).delay(500, TimeUnit.MILLISECONDS)) .skipLast(300, TimeUnit.MILLISECONDS, Schedulers.io(), true) .test() .awaitDone(5, TimeUnit.SECONDS) .assertResult(1); }
@Test public void mergeDelayErrorWithError() { Observable.mergeDelayError( Observable.just(Observable.just(1).concatWith(Observable.<Integer>error(new TestException())), Observable.just(2))) .test() .assertFailure(TestException.class, 1, 2); }
@Test public void mergeDelayError3WithError() { Observable.mergeDelayError( Observable.just(1), Observable.just(2).concatWith(Observable.<Integer>error(new TestException())), Observable.just(3) ) .test() .assertFailure(TestException.class, 1, 2, 3); }
@Test public void mergeDelayErrorWithErrorMaxConcurrency() { Observable.mergeDelayError( Observable.just(Observable.just(1).concatWith(Observable.<Integer>error(new TestException())), Observable.just(2)), 1) .test() .assertFailure(TestException.class, 1, 2); }
@SuppressWarnings("unchecked") @Test public void concatArrayDelayErrorWithError() { Observable.concatArrayDelayError(Observable.just(1), Observable.just(2), Observable.just(3).concatWith(Observable.<Integer>error(new TestException())), Observable.just(4)) .test() .assertFailure(TestException.class, 1, 2, 3, 4); }
@Test public void concatMapDelayErrorWithError() { Observable.just(Observable.just(1).concatWith(Observable.<Integer>error(new TestException())), Observable.just(2)) .concatMapDelayError(Functions.<Observable<Integer>>identity()) .test() .assertFailure(TestException.class, 1, 2); }
@Test public void concatObservableDelayErrorTillEnd() { Observable.concatDelayError( Observable.just(Observable.just(1), Observable.just(2), Observable.just(3).concatWith(Observable.<Integer>error(new TestException())), Observable.just(4)), 2, true) .test() .assertFailure(TestException.class, 1, 2, 3, 4); }
@Test public void concatObservableDelayErrorWithError() { Observable.concatDelayError( Observable.just(Observable.just(1), Observable.just(2), Observable.just(3).concatWith(Observable.<Integer>error(new TestException())), Observable.just(4))) .test() .assertFailure(TestException.class, 1, 2, 3, 4); }
@Test public void replayIsUnsubscribed() { ConnectableObservable<Integer> co = Observable.just(1).concatWith(Observable.<Integer>never()) .replay(); assertTrue(((Disposable)co).isDisposed()); Disposable s = co.connect(); assertFalse(((Disposable)co).isDisposed()); s.dispose(); assertTrue(((Disposable)co).isDisposed()); } }
@Test public void observers() { PublishSubject<Integer> ps = PublishSubject.create(); ObservableCache<Integer> cache = (ObservableCache<Integer>)Observable.range(1, 5).concatWith(ps).cache(); assertFalse(cache.hasObservers()); assertEquals(0, cache.cachedEventCount()); TestObserver<Integer> to = cache.test(); assertTrue(cache.hasObservers()); assertEquals(5, cache.cachedEventCount()); ps.onComplete(); to.assertResult(1, 2, 3, 4, 5); }