io.reactivex.observers.TestObserver#assertValueAt ( )源码实例Demo

下面列出了io.reactivex.observers.TestObserver#assertValueAt ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Test
public void test_just_new() {
	Observable<Integer> observable = Observable.just(12, 34, 6);
	TestObserver<Integer> testObserver = new TestObserver<>();

	observable.subscribe(testObserver);

	List<Integer> list = new ArrayList();
	testObserver.assertComplete();
	testObserver.assertResult(12, 34, 6);
	testObserver.assertValueCount(3);
	testObserver.assertNoErrors();
	testObserver.assertValueAt(2, (value) -> {
		// TODO Auto-generated method stub
		return value == 34;
	});

}
 
源代码2 项目: AndroidGodEye   文件: GodEyeHelperTest.java
@Test
public void onPageLoadedSuccessForActivity() {
    try {
        GodEye.instance().uninstall();
        GodEye.instance().install(GodEyeConfig.noneConfigBuilder().withPageloadConfig(new PageloadConfig()).build());
        ActivityController<Test1Activity> activityController = Robolectric.buildActivity(Test1Activity.class).create().start().resume();
        Test1Activity activity = activityController.get();
        TestObserver testObserver = GodEye.instance().<Pageload, PageLifecycleEventInfo>moduleObservable(GodEye.ModuleName.PAGELOAD).test();
        GodEyeHelper.onPageLoaded(activity);
        activityController.pause().stop().destroy();
        Shadows.shadowOf(ThreadUtil.obtainHandler("godeye-pageload").getLooper()).getScheduler().advanceToNextPostedRunnable();

        List<TestPageEvent> testPageEvents = new ArrayList<>();
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_CREATE, 1));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_START, 2));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_DRAW, 3));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_RESUME, 4));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_LOAD, 5));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_PAUSE, 6));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_STOP, 7));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_DESTROY, 8));
        testObserver.assertValueCount(8);
        for (int i = 0; i < 8; i++) {
            int finalI = i;
            testObserver.assertValueAt(i, new Predicate<PageLifecycleEventInfo>() {
                @Override
                public boolean test(PageLifecycleEventInfo o) throws Exception {
                    return testPageEvents.get(finalI).pageHashCode == o.pageInfo.pageHashCode
                            && testPageEvents.get(finalI).allEventSize == o.allEvents.size()
                            && testPageEvents.get(finalI).lifecycleEvent.equals(o.currentEvent.lifecycleEvent);
                }
            });
        }
    } catch (UninstallException e) {
        fail();
    }
}
 
@Test
public void test() {
    Subject<Integer> intSource = BehaviorSubject.createDefault(1);

    Subject<List<Observable<Integer>>> mainSubject = 
            BehaviorSubject.createDefault(singletonList(intSource));

    TestObserver<List<Integer>> testObserver = 
            mainSubject.flatMap(observables ->
            Observable.combineLatest(observables, this::castObjectsToInts)
                    )
            .test();

    List<Observable<Integer>> newValue = new ArrayList<>();
    newValue.add(intSource); // same value as before
    newValue.add(Observable.just(2)); // add another value to this list.

    mainSubject.onNext(newValue);

    // intSource was already '1', but this is just to 'update' it.
    intSource.onNext(1); // COMMENT OUT THIS LINE

    testObserver.assertValueAt(0, singletonList(1));
    testObserver.assertValueAt(1, Arrays.asList(1, 2));
    testObserver.assertValueAt(2, Arrays.asList(1)); // COMMENT OUT THIS LINE
    testObserver.assertValueAt(3, Arrays.asList(1, 2)); // COMMENT OUT THIS LINE
    testObserver.assertValueCount(4); // REPLACE 3 WITH 2
}
 
@Test
public void emit_progress() {

    TestObserver<D2Progress> testObserver = d2.aggregatedModule().data().download().test();
    testObserver.assertValueCount(4);

    testObserver.assertValueAt(0, v -> v.lastCall().equals("SystemInfo"));
    testObserver.assertValueAt(1, v -> v.lastCall().equals("DataValue"));
    testObserver.assertValueAt(2, v -> v.lastCall().equals("DataSetCompleteRegistration"));
    testObserver.assertValueAt(3, v -> v.lastCall().equals("DataApproval"));


    testObserver.dispose();
}
 
源代码5 项目: AndroidGodEye   文件: GodEyeHelperTest.java
/**
 * ACTIVITYTest2Activity, pageHashCode=638030090,ON_CREATE
 * FRAGMENTTest1Fragment, pageHashCode=436993154,ON_ATTACH
 * FRAGMENTTest1Fragment, pageHashCode=436993154,ON_CREATE
 * ACTIVITYTest2Activity, pageHashCode=638030090,ON_START
 * FRAGMENTTest1Fragment, pageHashCode=436993154,ON_VIEW_CREATE
 * FRAGMENTTest1Fragment, pageHashCode=436993154,ON_START
 * ACTIVITYTest2Activity, pageHashCode=638030090,ON_DRAW
 * FRAGMENTTest1Fragment, pageHashCode=436993154,ON_DRAW
 * ACTIVITYTest2Activity, pageHashCode=638030090,ON_RESUME
 * FRAGMENTTest1Fragment, pageHashCode=436993154,ON_RESUME
 * ACTIVITYTest2Activity, pageHashCode=638030090,ON_LOAD
 * FRAGMENTTest1Fragment, pageHashCode=436993154,ON_LOAD
 * ACTIVITYTest2Activity, pageHashCode=638030090,ON_PAUSE
 * FRAGMENTTest1Fragment, pageHashCode=436993154,ON_PAUSE
 * ACTIVITYTest2Activity, pageHashCode=638030090,ON_STOP
 * FRAGMENTTest1Fragment, pageHashCode=436993154,ON_STOP
 * ACTIVITYTest2Activity, pageHashCode=638030090,ON_DESTROY
 * FRAGMENTTest1Fragment, pageHashCode=436993154,ON_VIEW_DESTROY
 * FRAGMENTTest1Fragment, pageHashCode=436993154,ON_DESTROY
 * FRAGMENTTest1Fragment, pageHashCode=436993154,ON_DETACH
 */
@Test
public void onPageLoadedSuccessWithFragment() {
    try {
        GodEye.instance().uninstall();
        GodEye.instance().install(GodEyeConfig.noneConfigBuilder().withPageloadConfig(new PageloadConfig()).build());
        ActivityController<Test2Activity> activityController = Robolectric.buildActivity(Test2Activity.class).create().start().resume();
        Test2Activity activity = activityController.get();
        GodEyeHelper.onPageLoaded(activity);
        TestObserver testObserver = GodEye.instance().<Pageload, PageLifecycleEventInfo>moduleObservable(GodEye.ModuleName.PAGELOAD).test();
        Test1Fragment fragment = activity.getTest1Fragment();
        GodEyeHelper.onPageLoaded(fragment);
        activityController.pause().stop().destroy();
        Shadows.shadowOf(ThreadUtil.obtainHandler("godeye-pageload").getLooper()).getScheduler().advanceToNextPostedRunnable();
        List<TestPageEvent> testPageEvents = new ArrayList<>();
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_CREATE, 1));
        testPageEvents.add(new TestPageEvent(fragment.hashCode(), FragmentLifecycleEvent.ON_ATTACH, 1));
        testPageEvents.add(new TestPageEvent(fragment.hashCode(), FragmentLifecycleEvent.ON_CREATE, 2));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_START, 2));
        testPageEvents.add(new TestPageEvent(fragment.hashCode(), FragmentLifecycleEvent.ON_VIEW_CREATE, 3));
        testPageEvents.add(new TestPageEvent(fragment.hashCode(), FragmentLifecycleEvent.ON_START, 4));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_DRAW, 3));
        testPageEvents.add(new TestPageEvent(fragment.hashCode(), FragmentLifecycleEvent.ON_DRAW, 5));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_RESUME, 4));
        testPageEvents.add(new TestPageEvent(fragment.hashCode(), FragmentLifecycleEvent.ON_RESUME, 6));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_LOAD, 5));
        testPageEvents.add(new TestPageEvent(fragment.hashCode(), FragmentLifecycleEvent.ON_LOAD, 7));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_PAUSE, 6));
        testPageEvents.add(new TestPageEvent(fragment.hashCode(), FragmentLifecycleEvent.ON_PAUSE, 8));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_STOP, 7));
        testPageEvents.add(new TestPageEvent(fragment.hashCode(), FragmentLifecycleEvent.ON_STOP, 9));
        testPageEvents.add(new TestPageEvent(activity.hashCode(), ActivityLifecycleEvent.ON_DESTROY, 8));
        testPageEvents.add(new TestPageEvent(fragment.hashCode(), FragmentLifecycleEvent.ON_VIEW_DESTROY, 10));
        testPageEvents.add(new TestPageEvent(fragment.hashCode(), FragmentLifecycleEvent.ON_DESTROY, 11));
        testPageEvents.add(new TestPageEvent(fragment.hashCode(), FragmentLifecycleEvent.ON_DETACH, 12));
        testObserver.assertValueCount(20);
        for (int i = 0; i < 20; i++) {
            int finalI = i;
            testObserver.assertValueAt(i, new Predicate<PageLifecycleEventInfo>() {
                @Override
                public boolean test(PageLifecycleEventInfo o) throws Exception {
                    return testPageEvents.get(finalI).pageHashCode == o.pageInfo.pageHashCode
                            && testPageEvents.get(finalI).allEventSize == o.allEvents.size()
                            && testPageEvents.get(finalI).lifecycleEvent.equals(o.currentEvent.lifecycleEvent);
                }
            });
        }
    } catch (UninstallException e) {
        fail();
    }
}