@Override public MaybeSource<Integer> apply(Integer v) throws Exception { return Maybe.just(2); } })
@Override public MaybeSource<Integer> apply(Integer v) throws Exception { return Maybe.just(2); } }, new BiFunction<Integer, Integer, Object>() {
@Override public Maybe<Integer> apply(Maybe<Integer> f) throws Exception { return f.switchIfEmpty(Maybe.just(2)); } });
@Test(expected = NullPointerException.class) public void flatMapSingleElementNull() { Maybe.just(1) .flatMapSingleElement(null); }
@Test public void emptyIterable() { Maybe.just(1).flattenAsFlowable(new Function<Integer, Iterable<Integer>>() { @Override public Iterable<Integer> apply(Integer v) throws Exception { return Collections.<Integer>emptyList(); } }) .test() .assertResult(); }
@Test public void iteratorCrash() { Maybe.just(1).flattenAsFlowable(new Function<Integer, Iterable<Integer>>() { @Override public Iterable<Integer> apply(Integer v) throws Exception { return new CrashingIterable(1, 100, 100); } }) .test() .assertFailureAndMessage(TestException.class, "iterator()"); }
@Test public void hasNextCrash2() { Maybe.just(1).flattenAsFlowable(new Function<Integer, Iterable<Integer>>() { @Override public Iterable<Integer> apply(Integer v) throws Exception { return new CrashingIterable(100, 2, 100); } }) .test() .assertFailureAndMessage(TestException.class, "hasNext()", 0); }
@Test public void nextCrash() { Maybe.just(1).flattenAsObservable(new Function<Integer, Iterable<Integer>>() { @Override public Iterable<Integer> apply(Integer v) throws Exception { return new CrashingIterable(100, 100, 1); } }) .test() .assertFailureAndMessage(TestException.class, "next()"); }
@Test public void take() { Maybe.just(1).flattenAsFlowable(new Function<Integer, Iterable<Integer>>() { @Override public Iterable<Integer> apply(Integer v) throws Exception { return Arrays.asList(v, v + 1); } }) .take(1) .test() .assertResult(1); }
@Test public void flatMapSingleValueNull() { Maybe.just(1).flatMapSingle(new Function<Integer, SingleSource<Integer>>() { @Override public SingleSource<Integer> apply(final Integer integer) throws Exception { return null; } }) .test() .assertNoValues() .assertError(NullPointerException.class) .assertErrorMessage("The mapper returned a null SingleSource"); }
@Test public void normalJustConditional() { Maybe.just(1) .doFinally(this) .filter(Functions.alwaysTrue()) .test() .assertResult(1); assertEquals(1, calls); }
@Test public void disposeDuringDelay() { TestScheduler scheduler = new TestScheduler(); TestObserver<Integer> to = Maybe.just(1).delay(100, TimeUnit.MILLISECONDS, scheduler) .test(); to.cancel(); scheduler.advanceTimeBy(1, TimeUnit.SECONDS); to.assertEmpty(); }
@Test public void neverFallbackScheduler() { Maybe.never() .timeout(1, TimeUnit.MILLISECONDS, Schedulers.single(), Maybe.just(2)) .test() .awaitDone(5, TimeUnit.SECONDS) .assertResult(2); }
@Test public void dispose2() { PublishProcessor<Integer> pp1 = PublishProcessor.create(); PublishProcessor<Integer> pp2 = PublishProcessor.create(); TestHelper.checkDisposed(pp1.singleElement().timeout(pp2.singleElement(), Maybe.just(1))); }