Search in sources :

Example 1 with Predicate

use of io.reactivex.rxjava3.functions.Predicate in project RxJava by ReactiveX.

the class FlowableRetryBiPredicate method subscribeActual.

@Override
public void subscribeActual(Subscriber<? super T> s) {
    SubscriptionArbiter sa = new SubscriptionArbiter(false);
    s.onSubscribe(sa);
    RetryBiSubscriber<T> rs = new RetryBiSubscriber<>(s, predicate, sa, source);
    rs.subscribeNext();
}
Also used : SubscriptionArbiter(io.reactivex.rxjava3.internal.subscriptions.SubscriptionArbiter)

Example 2 with Predicate

use of io.reactivex.rxjava3.functions.Predicate in project RxJava by ReactiveX.

the class SingleRetryTest method retryTimesPredicateWithMatchingPredicate.

@Test
public void retryTimesPredicateWithMatchingPredicate() {
    final AtomicInteger atomicInteger = new AtomicInteger(3);
    final AtomicInteger numberOfSubscribeCalls = new AtomicInteger(0);
    Single.fromCallable(new Callable<Boolean>() {

        @Override
        public Boolean call() throws Exception {
            numberOfSubscribeCalls.incrementAndGet();
            if (atomicInteger.decrementAndGet() != 0) {
                throw new RuntimeException();
            }
            throw new IllegalArgumentException();
        }
    }).retry(Integer.MAX_VALUE, new Predicate<Throwable>() {

        @Override
        public boolean test(final Throwable throwable) throws Exception {
            return !(throwable instanceof IllegalArgumentException);
        }
    }).test().assertFailure(IllegalArgumentException.class);
    assertEquals(3, numberOfSubscribeCalls.get());
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Callable(java.util.concurrent.Callable) TestException(io.reactivex.rxjava3.exceptions.TestException) Test(org.junit.Test)

Example 3 with Predicate

use of io.reactivex.rxjava3.functions.Predicate in project RxJava by ReactiveX.

the class ObservableFirstTest method firstOrDefaultWithPredicateAndEmpty.

@Test
public void firstOrDefaultWithPredicateAndEmpty() {
    Single<Integer> o = Observable.just(1).filter(new Predicate<Integer>() {

        @Override
        public boolean test(Integer t1) {
            return t1 % 2 == 0;
        }
    }).first(2);
    o.subscribe(wo);
    InOrder inOrder = inOrder(wo);
    inOrder.verify(wo, times(1)).onSuccess(2);
    inOrder.verifyNoMoreInteractions();
}
Also used : InOrder(org.mockito.InOrder) Predicate(io.reactivex.rxjava3.functions.Predicate)

Example 4 with Predicate

use of io.reactivex.rxjava3.functions.Predicate in project RxJava by ReactiveX.

the class ObservableFirstTest method firstWithPredicateAndOneElement.

@Test
public void firstWithPredicateAndOneElement() {
    Maybe<Integer> o = Observable.just(1, 2).filter(new Predicate<Integer>() {

        @Override
        public boolean test(Integer t1) {
            return t1 % 2 == 0;
        }
    }).firstElement();
    o.subscribe(wm);
    InOrder inOrder = inOrder(wm);
    inOrder.verify(wm, times(1)).onSuccess(2);
    inOrder.verifyNoMoreInteractions();
}
Also used : InOrder(org.mockito.InOrder) Predicate(io.reactivex.rxjava3.functions.Predicate)

Example 5 with Predicate

use of io.reactivex.rxjava3.functions.Predicate in project RxJava by ReactiveX.

the class ObservableFirstTest method firstOrDefaultWithPredicate.

@Test
public void firstOrDefaultWithPredicate() {
    Single<Integer> o = Observable.just(1, 2, 3, 4, 5, 6).filter(new Predicate<Integer>() {

        @Override
        public boolean test(Integer t1) {
            return t1 % 2 == 0;
        }
    }).first(8);
    o.subscribe(wo);
    InOrder inOrder = inOrder(wo);
    inOrder.verify(wo, times(1)).onSuccess(2);
    inOrder.verifyNoMoreInteractions();
}
Also used : InOrder(org.mockito.InOrder) Predicate(io.reactivex.rxjava3.functions.Predicate)

Aggregations

Test (org.junit.Test)31 TestException (io.reactivex.rxjava3.exceptions.TestException)25 Predicate (io.reactivex.rxjava3.functions.Predicate)12 InOrder (org.mockito.InOrder)12 BooleanSubscription (io.reactivex.rxjava3.internal.subscriptions.BooleanSubscription)11 IOException (java.io.IOException)9 TestSubscriber (io.reactivex.rxjava3.subscribers.TestSubscriber)6 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)6 ForEachWhileSubscriber (io.reactivex.rxjava3.internal.subscribers.ForEachWhileSubscriber)5 CompletableSubject (io.reactivex.rxjava3.subjects.CompletableSubject)3 Observable (io.reactivex.rxjava3.core.Observable)2 RxJavaTest (io.reactivex.rxjava3.core.RxJavaTest)2 SequentialDisposable (io.reactivex.rxjava3.internal.disposables.SequentialDisposable)2 SubscriptionArbiter (io.reactivex.rxjava3.internal.subscriptions.SubscriptionArbiter)2 ConditionalSubscriber (io.reactivex.rxjava3.operators.ConditionalSubscriber)2 Callable (java.util.concurrent.Callable)2 CountDownLatch (java.util.concurrent.CountDownLatch)2 Flowable (io.reactivex.rxjava3.core.Flowable)1 Disposable (io.reactivex.rxjava3.disposables.Disposable)1 GroupedFlowable (io.reactivex.rxjava3.flowables.GroupedFlowable)1