Search in sources :

Example 91 with TestSubscriber

use of io.reactivex.rxjava3.subscribers.TestSubscriber in project RxJava by ReactiveX.

the class QueueDrainHelperTest method postCompleteAlreadyComplete.

@Test
public void postCompleteAlreadyComplete() {
    TestSubscriber<Integer> ts = new TestSubscriber<>();
    Queue<Integer> q = new ArrayDeque<>();
    q.offer(1);
    AtomicLong state = new AtomicLong(QueueDrainHelper.COMPLETED_MASK);
    QueueDrainHelper.postComplete(ts, q, state, new BooleanSupplier() {

        @Override
        public boolean getAsBoolean() throws Exception {
            return false;
        }
    });
}
Also used : AtomicLong(java.util.concurrent.atomic.AtomicLong) TestSubscriber(io.reactivex.rxjava3.subscribers.TestSubscriber) BooleanSupplier(io.reactivex.rxjava3.functions.BooleanSupplier) IOException(java.io.IOException) RxJavaTest(io.reactivex.rxjava3.core.RxJavaTest) Test(org.junit.Test)

Example 92 with TestSubscriber

use of io.reactivex.rxjava3.subscribers.TestSubscriber in project RxJava by ReactiveX.

the class QueueDrainHelperTest method drainMaxLoopMissingBackpressureWithResource.

@Test
public void drainMaxLoopMissingBackpressureWithResource() {
    TestSubscriber<Integer> ts = new TestSubscriber<>();
    ts.onSubscribe(new BooleanSubscription());
    QueueDrain<Integer, Integer> qd = new QueueDrain<Integer, Integer>() {

        @Override
        public boolean cancelled() {
            return false;
        }

        @Override
        public boolean done() {
            return false;
        }

        @Override
        public Throwable error() {
            return null;
        }

        @Override
        public boolean enter() {
            return true;
        }

        @Override
        public long requested() {
            return 0;
        }

        @Override
        public long produced(long n) {
            return 0;
        }

        @Override
        public int leave(int m) {
            return 0;
        }

        @Override
        public boolean accept(Subscriber<? super Integer> a, Integer v) {
            return false;
        }
    };
    SpscArrayQueue<Integer> q = new SpscArrayQueue<>(32);
    q.offer(1);
    Disposable d = Disposable.empty();
    QueueDrainHelper.drainMaxLoop(q, ts, false, d, qd);
    ts.assertFailure(MissingBackpressureException.class);
    assertTrue(d.isDisposed());
}
Also used : BooleanSubscription(io.reactivex.rxjava3.internal.subscriptions.BooleanSubscription) SpscArrayQueue(io.reactivex.rxjava3.operators.SpscArrayQueue) TestSubscriber(io.reactivex.rxjava3.subscribers.TestSubscriber) TestSubscriber(io.reactivex.rxjava3.subscribers.TestSubscriber) RxJavaTest(io.reactivex.rxjava3.core.RxJavaTest) Test(org.junit.Test)

Example 93 with TestSubscriber

use of io.reactivex.rxjava3.subscribers.TestSubscriber in project RxJava by ReactiveX.

the class AtomicThrowableTest method tryTerminateConsumerSubscriberError.

@Test
public void tryTerminateConsumerSubscriberError() {
    TestSubscriber<Object> ts = new TestSubscriber<>();
    ts.onSubscribe(new BooleanSubscription());
    AtomicThrowable ex = new AtomicThrowable();
    ex.set(new TestException());
    ex.tryTerminateConsumer(ts);
    ts.assertFailure(TestException.class);
}
Also used : BooleanSubscription(io.reactivex.rxjava3.internal.subscriptions.BooleanSubscription) TestException(io.reactivex.rxjava3.exceptions.TestException) TestSubscriber(io.reactivex.rxjava3.subscribers.TestSubscriber) Test(org.junit.Test)

Example 94 with TestSubscriber

use of io.reactivex.rxjava3.subscribers.TestSubscriber in project RxJava by ReactiveX.

the class FlowableDetachTest method error.

@Test
public void error() {
    TestSubscriber<Object> ts = new TestSubscriber<>();
    Flowable.error(new TestException()).onTerminateDetach().subscribe(ts);
    ts.assertNoValues();
    ts.assertError(TestException.class);
    ts.assertNotComplete();
}
Also used : TestException(io.reactivex.rxjava3.exceptions.TestException) TestSubscriber(io.reactivex.rxjava3.subscribers.TestSubscriber)

Example 95 with TestSubscriber

use of io.reactivex.rxjava3.subscribers.TestSubscriber in project RxJava by ReactiveX.

the class FlowableDoAfterTerminateTest method ifFinallyActionThrowsExceptionShouldNotBeSwallowedAndActionShouldBeCalledOnce.

@Test
public void ifFinallyActionThrowsExceptionShouldNotBeSwallowedAndActionShouldBeCalledOnce() throws Throwable {
    List<Throwable> errors = TestHelper.trackPluginErrors();
    try {
        Action finallyAction = Mockito.mock(Action.class);
        doThrow(new IllegalStateException()).when(finallyAction).run();
        TestSubscriber<String> testSubscriber = new TestSubscriber<>();
        Flowable.just("value").doAfterTerminate(finallyAction).subscribe(testSubscriber);
        testSubscriber.assertValue("value");
        verify(finallyAction).run();
        TestHelper.assertError(errors, 0, IllegalStateException.class);
    // Actual result:
    // Not only IllegalStateException was swallowed
    // But finallyAction was called twice!
    } finally {
        RxJavaPlugins.reset();
    }
}
Also used : Action(io.reactivex.rxjava3.functions.Action) TestSubscriber(io.reactivex.rxjava3.subscribers.TestSubscriber)

Aggregations

Test (org.junit.Test)169 TestSubscriber (io.reactivex.rxjava3.subscribers.TestSubscriber)116 BooleanSubscription (io.reactivex.rxjava3.internal.subscriptions.BooleanSubscription)106 TestException (io.reactivex.rxjava3.exceptions.TestException)56 RxJavaTest (io.reactivex.rxjava3.core.RxJavaTest)27 TimeUnit (java.util.concurrent.TimeUnit)19 FlowableRxInvokerProvider (org.apache.cxf.jaxrs.rx3.client.FlowableRxInvokerProvider)18 FlowableRxInvoker (org.apache.cxf.jaxrs.rx3.client.FlowableRxInvoker)17 JacksonJsonProvider (com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider)15 IOException (java.io.IOException)15 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)15 Flowable (io.reactivex.rxjava3.core.Flowable)13 InternalServerErrorException (javax.ws.rs.InternalServerErrorException)13 ClientBuilder (javax.ws.rs.client.ClientBuilder)13 MediaType (javax.ws.rs.core.MediaType)13 AbstractResourceInfo (org.apache.cxf.jaxrs.model.AbstractResourceInfo)13 AbstractBusClientServerTestBase (org.apache.cxf.testutil.common.AbstractBusClientServerTestBase)13 Assert.assertTrue (org.junit.Assert.assertTrue)13 BeforeClass (org.junit.BeforeClass)13 TestScheduler (io.reactivex.rxjava3.schedulers.TestScheduler)12