Search in sources :

Example 11 with TestSubscriber

use of rx.observers.TestSubscriber in project Hystrix by Netflix.

the class HystrixObservableCollapserTest method testTwoRequestsWithValuesForOneArgOnlyAndOnMissingError.

@Test
public void testTwoRequestsWithValuesForOneArgOnlyAndOnMissingError() {
    TestCollapserTimer timer = new TestCollapserTimer();
    HystrixObservableCollapser<String, String, String, String> collapser1 = new TestCollapserWithMultipleResponses(timer, 1, 0, onMissingError);
    HystrixObservableCollapser<String, String, String, String> collapser2 = new TestCollapserWithMultipleResponses(timer, 2, 5, onMissingError);
    System.out.println("Starting to observe collapser1");
    Observable<String> result1 = collapser1.observe();
    Observable<String> result2 = collapser2.observe();
    // let time pass that equals the default delay/period
    timer.incrementTime(10);
    TestSubscriber<String> testSubscriber1 = new TestSubscriber<String>();
    result1.subscribe(testSubscriber1);
    TestSubscriber<String> testSubscriber2 = new TestSubscriber<String>();
    result2.subscribe(testSubscriber2);
    testSubscriber1.awaitTerminalEvent();
    testSubscriber2.awaitTerminalEvent();
    testSubscriber1.assertError(IllegalStateException.class);
    testSubscriber1.assertNoValues();
    testSubscriber2.assertCompleted();
    testSubscriber2.assertNoErrors();
    testSubscriber2.assertValues("2:2", "2:4", "2:6", "2:8", "2:10");
}
Also used : TestSubscriber(rx.observers.TestSubscriber) TestCollapserTimer(com.netflix.hystrix.HystrixCollapserTest.TestCollapserTimer) Test(org.junit.Test)

Example 12 with TestSubscriber

use of rx.observers.TestSubscriber in project Hystrix by Netflix.

the class HystrixObservableCollapserTest method testTwoRequestsWithErrorInDemultiplex.

@Test
public void testTwoRequestsWithErrorInDemultiplex() {
    TestCollapserTimer timer = new TestCollapserTimer();
    HystrixObservableCollapser<String, String, String, String> collapser1 = new TestCollapserWithMultipleResponses(timer, 1, 3, false, false, mapWithErrorOn1, onMissingError);
    HystrixObservableCollapser<String, String, String, String> collapser2 = new TestCollapserWithMultipleResponses(timer, 2, 3, false, false, mapWithErrorOn1, onMissingError);
    System.out.println("Starting to observe collapser1");
    Observable<String> result1 = collapser1.observe();
    Observable<String> result2 = collapser2.observe();
    // let time pass that equals the default delay/period
    timer.incrementTime(10);
    TestSubscriber<String> testSubscriber1 = new TestSubscriber<String>();
    result1.subscribe(testSubscriber1);
    TestSubscriber<String> testSubscriber2 = new TestSubscriber<String>();
    result2.subscribe(testSubscriber2);
    testSubscriber1.awaitTerminalEvent();
    testSubscriber2.awaitTerminalEvent();
    testSubscriber1.assertError(RuntimeException.class);
    testSubscriber1.assertNoValues();
    testSubscriber2.assertCompleted();
    testSubscriber2.assertNoErrors();
    testSubscriber2.assertValues("2:2", "2:4", "2:6");
}
Also used : TestSubscriber(rx.observers.TestSubscriber) TestCollapserTimer(com.netflix.hystrix.HystrixCollapserTest.TestCollapserTimer) Test(org.junit.Test)

Example 13 with TestSubscriber

use of rx.observers.TestSubscriber in project feign by OpenFeign.

the class HystrixBuilderTest method rxCompletableWithBody.

@Test
public void rxCompletableWithBody() {
    server.enqueue(new MockResponse().setBody("foo"));
    TestInterface api = target();
    Completable completable = api.completable();
    assertThat(completable).isNotNull();
    assertThat(server.getRequestCount()).isEqualTo(0);
    TestSubscriber<String> testSubscriber = new TestSubscriber<String>();
    completable.subscribe(testSubscriber);
    testSubscriber.awaitTerminalEvent();
    testSubscriber.assertCompleted();
    testSubscriber.assertNoErrors();
}
Also used : MockResponse(okhttp3.mockwebserver.MockResponse) Completable(rx.Completable) TestSubscriber(rx.observers.TestSubscriber) Test(org.junit.Test)

Example 14 with TestSubscriber

use of rx.observers.TestSubscriber in project nucleus by konmik.

the class DeliverCacheTest method testCache.

@Test
public void testCache() throws Exception {
    PublishSubject<Object> view = PublishSubject.create();
    final TestSubscriber<Delivery<Object, Integer>> testSubscriber = new TestSubscriber<>();
    final ArrayList<Delivery<Object, Integer>> deliveries = new ArrayList<>();
    final PublishSubject<Integer> subject = PublishSubject.create();
    DeliverLatestCache<Object, Integer> restartable = new DeliverLatestCache<>(view);
    Subscription subscription = restartable.call(subject).subscribe(new Action1<Delivery<Object, Integer>>() {

        @Override
        public void call(Delivery<Object, Integer> delivery) {
            delivery.split(new Action2<Object, Integer>() {

                @Override
                public void call(Object o, Integer integer) {
                    testSubscriber.onNext(new Delivery<>(o, Notification.createOnNext(integer)));
                }
            }, new Action2<Object, Throwable>() {

                @Override
                public void call(Object o, Throwable throwable) {
                    testSubscriber.onNext(new Delivery<>(o, Notification.<Integer>createOnError(throwable)));
                }
            });
        }
    });
    // only latest value is delivered
    subject.onNext(1);
    subject.onNext(2);
    subject.onNext(3);
    testSubscriber.assertNotCompleted();
    testSubscriber.assertNoValues();
    view.onNext(100);
    deliveries.add(new Delivery<Object, Integer>(100, Notification.createOnNext(3)));
    testSubscriber.assertValueCount(1);
    testSubscriber.assertNotCompleted();
    // no values delivered if a view has been detached
    view.onNext(null);
    testSubscriber.assertValueCount(1);
    testSubscriber.assertNotCompleted();
    // the latest value will be delivered to the new view
    view.onNext(101);
    deliveries.add(new Delivery<Object, Integer>(101, Notification.createOnNext(3)));
    testSubscriber.assertValueCount(2);
    testSubscriber.assertNotCompleted();
    // a throwable will be delivered as well
    Throwable throwable = new Throwable();
    subject.onError(throwable);
    deliveries.add(new Delivery<Object, Integer>(101, Notification.<Integer>createOnError(throwable)));
    testSubscriber.assertValueCount(3);
    testSubscriber.assertNotCompleted();
    // the throwable will be delivered after a new view is attached
    view.onNext(102);
    deliveries.add(new Delivery<Object, Integer>(102, Notification.<Integer>createOnError(throwable)));
    testSubscriber.assertValueCount(4);
    testSubscriber.assertNotCompleted();
    // final checks
    testSubscriber.assertReceivedOnNext(deliveries);
    subscription.unsubscribe();
    assertFalse(subject.hasObservers());
    assertFalse(view.hasObservers());
}
Also used : Action2(rx.functions.Action2) ArrayList(java.util.ArrayList) TestSubscriber(rx.observers.TestSubscriber) Subscription(rx.Subscription) Test(org.junit.Test)

Example 15 with TestSubscriber

use of rx.observers.TestSubscriber in project nucleus by konmik.

the class DeliverFirstTest method testOnceThrowable.

@Test
public void testOnceThrowable() throws Exception {
    PublishSubject<Object> view = PublishSubject.create();
    final TestSubscriber<Delivery<Object, Integer>> testSubscriber = new TestSubscriber<>();
    final ArrayList<Delivery<Object, Integer>> deliveries = new ArrayList<>();
    final PublishSubject<Integer> subject = PublishSubject.create();
    DeliverFirst<Object, Integer> restartable = new DeliverFirst<>(view);
    Subscription subscription = restartable.call(subject).subscribe(new Action1<Delivery<Object, Integer>>() {

        @Override
        public void call(Delivery<Object, Integer> delivery) {
            delivery.split(new Action2<Object, Integer>() {

                @Override
                public void call(Object o, Integer integer) {
                    testSubscriber.onNext(new Delivery<>(o, Notification.createOnNext(integer)));
                }
            }, new Action2<Object, Throwable>() {

                @Override
                public void call(Object o, Throwable throwable) {
                    testSubscriber.onNext(new Delivery<>(o, Notification.<Integer>createOnError(throwable)));
                }
            });
        }
    });
    // only first value is delivered
    Throwable throwable = new Throwable();
    subject.onError(throwable);
    testSubscriber.assertNotCompleted();
    testSubscriber.assertNoValues();
    view.onNext(100);
    deliveries.add(new Delivery<Object, Integer>(100, Notification.<Integer>createOnError(throwable)));
    testSubscriber.assertValueCount(1);
    // final checks
    testSubscriber.assertReceivedOnNext(deliveries);
    subscription.unsubscribe();
    assertFalse(subject.hasObservers());
    assertFalse(view.hasObservers());
}
Also used : Action2(rx.functions.Action2) ArrayList(java.util.ArrayList) TestSubscriber(rx.observers.TestSubscriber) Subscription(rx.Subscription) Test(org.junit.Test)

Aggregations

TestSubscriber (rx.observers.TestSubscriber)238 Test (org.junit.Test)213 Intent (android.content.Intent)48 Environment (com.kickstarter.libs.Environment)43 Cursor (android.database.Cursor)36 Changes (com.pushtorefresh.storio.contentresolver.Changes)34 Project (com.kickstarter.models.Project)33 MockCurrentUser (com.kickstarter.libs.MockCurrentUser)21 MockApiClient (com.kickstarter.services.MockApiClient)21 ApiClientType (com.kickstarter.services.ApiClientType)20 TargetApi (android.annotation.TargetApi)18 CurrentUserType (com.kickstarter.libs.CurrentUserType)18 StorIOSQLite (com.pushtorefresh.storio.sqlite.StorIOSQLite)18 StorIOException (com.pushtorefresh.storio.StorIOException)17 TestCollapserTimer (com.netflix.hystrix.HystrixCollapserTest.TestCollapserTimer)16 Matchers.anyString (org.mockito.Matchers.anyString)16 User (com.kickstarter.models.User)15 PutResult (com.pushtorefresh.storio.contentresolver.operations.put.PutResult)15 Uri (android.net.Uri)14 NonNull (android.support.annotation.NonNull)14