@Test(expected = NullPointerException.class) public void concatObservableNull() { Observable.concat((Observable<Observable<Object>>)null); }
@Test(expected = NullPointerException.class) public void concatIterableNull() { Observable.concat((Iterable<Observable<Object>>)null); }
@SuppressWarnings("unchecked") @Test(expected = NullPointerException.class) public void concatIterableOneIsNull() { Observable.concat(Arrays.asList(just1, null)).blockingLast(); }
@Test(expected = NullPointerException.class) public void concatIterableIteratorNull() { Observable.concat(new Iterable<Observable<Object>>() { @Override public Iterator<Observable<Object>> iterator() { return null; } }).blockingLast(); }
@Test public void testSkipError() { Exception e = new Exception(); Observable<String> ok = Observable.just("one"); Observable<String> error = Observable.error(e); Observable<String> skip = Observable.concat(ok, error).skip(100); Observer<String> observer = TestHelper.mockObserver(); skip.subscribe(observer); verify(observer, never()).onNext(any(String.class)); verify(observer, times(1)).onError(e); verify(observer, never()).onComplete(); }
@Test public void testConcatWithList() { 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); final List<Observable<String>> list = new ArrayList<Observable<String>>(); list.add(odds); list.add(even); Observable<String> concat = Observable.concat(Observable.fromIterable(list)); concat.subscribe(observer); verify(observer, times(7)).onNext(anyString()); }
@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()); }
@Test public void testAggregateAsIntSumSourceThrowsObservable() { Observable<Integer> result = Observable.concat(Observable.just(1, 2, 3, 4, 5), Observable.<Integer> error(new TestException())) .reduce(0, sum).map(new Function<Integer, Integer>() { @Override public Integer apply(Integer v) { return v; } }).toObservable(); result.subscribe(observer); verify(observer, never()).onNext(any()); verify(observer, never()).onComplete(); verify(observer, times(1)).onError(any(TestException.class)); }
@Test public void testConcatSimple() { Observable<String> o1 = Observable.just("one", "two"); Observable<String> o2 = Observable.just("three", "four"); List<String> values = Observable.concat(o1, o2).toList().blockingGet(); assertEquals("one", values.get(0)); assertEquals("two", values.get(1)); assertEquals("three", values.get(2)); assertEquals("four", values.get(3)); }
@Test public void testConcatWithObservableOfObservable() { Observable<String> o1 = Observable.just("one", "two"); Observable<String> o2 = Observable.just("three", "four"); Observable<String> o3 = Observable.just("five", "six"); Observable<Observable<String>> os = Observable.just(o1, o2, o3); List<String> values = Observable.concat(os).toList().blockingGet(); assertEquals("one", values.get(0)); assertEquals("two", values.get(1)); assertEquals("three", values.get(2)); assertEquals("four", values.get(3)); assertEquals("five", values.get(4)); assertEquals("six", values.get(5)); }
@Test public void testWithError3Observable() { Observable<Boolean> o = Observable.sequenceEqual( Observable.concat(Observable.just("one"), Observable.<String> error(new TestException())), Observable.concat(Observable.just("one"), Observable.<String> error(new TestException()))).toObservable(); verifyError(o); }
@Test public void testConcatCovariance3() { HorrorMovie horrorMovie1 = new HorrorMovie(); Movie movie = new Movie(); Media media = new Media(); HorrorMovie horrorMovie2 = new HorrorMovie(); Observable<Movie> o1 = Observable.just(horrorMovie1, movie); Observable<Media> o2 = Observable.just(media, horrorMovie2); List<Media> values = Observable.concat(o1, o2).toList().blockingGet(); assertEquals(horrorMovie1, values.get(0)); assertEquals(movie, values.get(1)); assertEquals(media, values.get(2)); assertEquals(horrorMovie2, values.get(3)); assertEquals(4, values.size()); }
@Test public void concat3() { Observable.concat(Observable.just(1), Observable.just(2), Observable.just(3)) .test() .assertResult(1, 2, 3); }
@Test public void concat4() { Observable.concat(Observable.just(1), Observable.just(2), Observable.just(3), Observable.just(4)) .test() .assertResult(1, 2, 3, 4); }
@Test public void testWithError1() { Single<Boolean> o = Observable.sequenceEqual( Observable.concat(Observable.just("one"), Observable.<String> error(new TestException())), Observable.just("one", "two", "three")); verifyError(o); }
@Test public void testWithError2() { Single<Boolean> o = Observable.sequenceEqual( Observable.just("one", "two", "three"), Observable.concat(Observable.just("one"), Observable.<String> error(new TestException()))); verifyError(o); }
@Test public void testWithError2Observable() { Observable<Boolean> o = Observable.sequenceEqual( Observable.just("one", "two", "three"), Observable.concat(Observable.just("one"), Observable.<String> error(new TestException()))).toObservable(); verifyError(o); }
@Test public void testWithError1Observable() { Observable<Boolean> o = Observable.sequenceEqual( Observable.concat(Observable.just("one"), Observable.<String> error(new TestException())), Observable.just("one", "two", "three")).toObservable(); verifyError(o); }
@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> ts = new TestObserver<Object>(); m.subscribe(ts); ts.awaitTerminalEvent(); assertEquals(1, ts.errorCount()); ts.assertValueCount(1); }