@Override public SingleSource<Object> apply(Flowable<Object> f) throws Exception { return f.last(2); } });
@Test public void dispose() { TestHelper.checkDisposed(Flowable.never().lastElement().toFlowable()); TestHelper.checkDisposed(Flowable.never().lastElement()); TestHelper.checkDisposed(Flowable.just(1).lastOrError().toFlowable()); TestHelper.checkDisposed(Flowable.just(1).lastOrError()); TestHelper.checkDisposed(Flowable.just(1).last(2).toFlowable()); TestHelper.checkDisposed(Flowable.just(1).last(2)); }
@Override public Flowable<Object> apply(Flowable<Object> f) throws Exception { return f.last(2).toFlowable(); } });
@Test(expected = NullPointerException.class) public void lastNull() { just1.last(null); }
@Test public void testLastOrDefaultWithOneElement() { Single<Integer> single = Flowable.just(1).last(2); SingleObserver<Integer> observer = TestHelper.mockSingleObserver(); single.subscribe(observer); InOrder inOrder = inOrder(observer); inOrder.verify(observer, times(1)).onSuccess(1); // inOrder.verify(observer, times(1)).onComplete(); inOrder.verifyNoMoreInteractions(); }
@Test public void testLastOrDefault() { Single<Integer> single = Flowable.just(1, 2, 3) .last(4); SingleObserver<Integer> observer = TestHelper.mockSingleObserver(); single.subscribe(observer); InOrder inOrder = inOrder(observer); inOrder.verify(observer, times(1)).onSuccess(3); // inOrder.verify(observer, times(1)).onComplete(); inOrder.verifyNoMoreInteractions(); }
@Test public void testLastOrDefaultWithEmpty() { Single<Integer> single = Flowable.<Integer> empty() .last(1); SingleObserver<Integer> observer = TestHelper.mockSingleObserver(); single.subscribe(observer); InOrder inOrder = inOrder(observer); inOrder.verify(observer, times(1)).onSuccess(1); // inOrder.verify(observer, times(1)).onComplete(); inOrder.verifyNoMoreInteractions(); }
@Test public void testLastOrDefaultWithPredicateAndOneElement() { Single<Integer> single = Flowable.just(1, 2) .filter(new Predicate<Integer>() { @Override public boolean test(Integer t1) { return t1 % 2 == 0; } }) .last(4); SingleObserver<Integer> observer = TestHelper.mockSingleObserver(); single.subscribe(observer); InOrder inOrder = inOrder(observer); inOrder.verify(observer, times(1)).onSuccess(2); // inOrder.verify(observer, times(1)).onComplete(); inOrder.verifyNoMoreInteractions(); }
@Test public void testLastOrDefaultWithPredicateAndEmpty() { Single<Integer> single = Flowable.just(1) .filter( new Predicate<Integer>() { @Override public boolean test(Integer t1) { return t1 % 2 == 0; } }) .last(2); SingleObserver<Integer> observer = TestHelper.mockSingleObserver(); single.subscribe(observer); InOrder inOrder = inOrder(observer); inOrder.verify(observer, times(1)).onSuccess(2); // inOrder.verify(observer, times(1)).onComplete(); inOrder.verifyNoMoreInteractions(); }
@Test public void testLastOrDefaultWithPredicate() { Single<Integer> single = Flowable.just(1, 2, 3, 4, 5, 6) .filter(new Predicate<Integer>() { @Override public boolean test(Integer t1) { return t1 % 2 == 0; } }) .last(8); SingleObserver<Integer> observer = TestHelper.mockSingleObserver(); single.subscribe(observer); InOrder inOrder = inOrder(observer); inOrder.verify(observer, times(1)).onSuccess(6); // inOrder.verify(observer, times(1)).onComplete(); inOrder.verifyNoMoreInteractions(); }