@Test public void manySources() { Observable<?>[] a = new Observable[32]; Arrays.fill(a, Observable.never()); a[31] = Observable.just(1); Observable.amb(Arrays.asList(a)) .test() .assertResult(1); }
@SuppressWarnings("unchecked") @Test public void ambIterableOrder() { Observable<Integer> error = Observable.error(new RuntimeException()); Observable.amb(Arrays.asList(Observable.just(1), error)).test().assertValue(1).assertComplete(); }
@Test public void to() { Maybe.just(1).to(new Function<Maybe<Integer>, Observable<Integer>>() { @Override public Observable<Integer> apply(Maybe<Integer> v) throws Exception { return v.toObservable(); } }) .test() .assertResult(1); }
@Test public void empty() { Maybe.<Integer>empty().flattenAsObservable(new Function<Integer, Iterable<Integer>>() { @Override public Iterable<Integer> apply(Integer v) throws Exception { return Arrays.asList(v, v + 1); } }) .test() .assertResult(); }
@Test public void hasNextCrash() { Maybe.just(1).flattenAsObservable(new Function<Integer, Iterable<Integer>>() { @Override public Iterable<Integer> apply(Integer v) throws Exception { return new CrashingIterable(100, 1, 100); } }) .test() .assertFailureAndMessage(TestException.class, "hasNext()"); }
@SuppressWarnings("unchecked") @Test public void ambArrayOrder() { Observable<Integer> error = Observable.error(new RuntimeException()); Observable.ambArray(Observable.just(1), error).test().assertValue(1).assertComplete(); } }
@Test public void concat2Empty() { Maybe.concat(Maybe.empty(), Maybe.empty()) .test() .assertResult(); }
@Test public void concat2Backpressured() { TestObserver<Integer> ts = Maybe.concat(Maybe.just(1), Maybe.just(2)) .test(); ts.assertResult(1, 2); }
@SuppressWarnings("unchecked") @Test public void bufferTimedExactError() { Observable.error(new TestException()) .buffer(1, TimeUnit.DAYS) .test() .assertFailure(TestException.class); }
@SuppressWarnings("unchecked") @Test public void bufferTimedOverlapError() { Observable.error(new TestException()) .buffer(2, 1, TimeUnit.DAYS) .test() .assertFailure(TestException.class); }
@Test public void mapperThrows() { Observable.just(1).hide() .concatMap(new Function<Integer, ObservableSource<Integer>>() { @Override public ObservableSource<Integer> apply(Integer v) throws Exception { throw new TestException(); } }) .test() .assertFailure(TestException.class); }
@Test public void mergeALot() { @SuppressWarnings("unchecked") Maybe<Integer>[] sources = new Maybe[Observable.bufferSize() * 2]; Arrays.fill(sources, Maybe.just(1)); Maybe.mergeArray(sources) .test() .assertSubscribed() .assertValueCount(sources.length) .assertNoErrors() .assertComplete(); }
@Test public void merge3() { Maybe.merge(Maybe.just(1), Maybe.just(2), Maybe.just(3)) .test() .assertResult(1, 2, 3); }
@SuppressWarnings("unchecked") @Test public void mergeArrayBackpressured() { TestObserver<Integer> ts = Maybe.mergeArray(Maybe.just(1), Maybe.just(2), Maybe.just(3)) .test(); ts.assertResult(1, 2, 3); }
@SuppressWarnings("unchecked") @Test public void mergeArrayBackpressuredMixed1() { TestObserver<Integer> ts = Maybe.mergeArray(Maybe.just(1), Maybe.<Integer>empty(), Maybe.just(3)) .test(); ts.assertResult(1, 3); }
@SuppressWarnings("unchecked") @Test public void mergeArrayBackpressuredMixed2() { TestObserver<Integer> ts = Maybe.mergeArray(Maybe.just(1), Maybe.just(2), Maybe.<Integer>empty()) .test(); ts.assertResult(1, 2); }
@Test public void normalTake() { Observable.range(1, 10) .doFinally(this) .take(5) .test() .assertResult(1, 2, 3, 4, 5); assertEquals(1, calls); }
@Test public void testCollectorFailureDoesNotResultInErrorAndCompletedEmissionsObservable() { final RuntimeException e = new RuntimeException(); Burst.item(1).create() // .collect(callableListCreator(), biConsumerThrows(e)) // .toObservable() .test() // .assertError(e) // .assertNotComplete(); }
@Test public void valueConcatWithValue() { Maybe.just(1) .concatWith(Maybe.just(2)) .test() .assertNoErrors() .assertComplete() .assertValues(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); }