下面列出了io.reactivex.android.plugins.RxAndroidPlugins#reset ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public Statement apply(Statement base, Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
RxJavaPlugins.setIoSchedulerHandler(scheduler -> mTestScheduler);
RxJavaPlugins.setComputationSchedulerHandler(scheduler -> mTestScheduler);
RxJavaPlugins.setNewThreadSchedulerHandler(scheduler -> mTestScheduler);
RxAndroidPlugins.setMainThreadSchedulerHandler(scheduler -> mTestScheduler);
try {
base.evaluate();
} finally {
RxJavaPlugins.reset();
RxAndroidPlugins.reset();
}
}
};
}
@Override
public Statement apply(Statement base, Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
RxJavaPlugins.setIoSchedulerHandler(scheduler -> mTestScheduler);
RxJavaPlugins.setComputationSchedulerHandler(scheduler -> mTestScheduler);
RxJavaPlugins.setNewThreadSchedulerHandler(scheduler -> mTestScheduler);
RxAndroidPlugins.setMainThreadSchedulerHandler(scheduler -> mTestScheduler);
try {
base.evaluate();
} finally {
RxJavaPlugins.reset();
RxAndroidPlugins.reset();
}
}
};
}
@Override
public Statement apply(final Statement base, Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
RxAndroidPlugins.setMainThreadSchedulerHandler(scheduler -> Schedulers.trampoline());
RxAndroidPlugins.setInitMainThreadSchedulerHandler(schedulerCallable -> Schedulers.trampoline());
try {
base.evaluate();
} finally {
RxJavaPlugins.reset();
RxAndroidPlugins.reset();
}
}
};
}
@Override
public Statement apply(final Statement base, Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
RxAndroidPlugins.reset();
RxAndroidPlugins.setMainThreadSchedulerHandler(scheduler -> Schedulers.trampoline());
RxJavaPlugins.reset();
RxJavaPlugins.setIoSchedulerHandler(scheduler -> Schedulers.trampoline());
RxJavaPlugins.setComputationSchedulerHandler(scheduler -> Schedulers.trampoline());
RxJavaPlugins.setNewThreadSchedulerHandler(scheduler -> Schedulers.trampoline());
base.evaluate();
RxAndroidPlugins.reset();
RxJavaPlugins.reset();
}
};
}
@Override
protected void starting(Description description) {
if (restoreHandlers) {
// https://github.com/ReactiveX/RxAndroid/pull/358
// originalInitMainThreadInitHandler =
// RxAndroidPlugins.getInitMainThreadScheduler();
// originalMainThreadHandler = RxAndroidPlugins.getMainThreadScheduler();
}
RxAndroidPlugins.reset();
RxAndroidPlugins.setInitMainThreadSchedulerHandler(
new Function<Callable<Scheduler>, Scheduler>() {
@Override
public Scheduler apply(Callable<Scheduler> schedulerCallable) throws Exception {
return delegatingMainThreadScheduler;
}
});
RxAndroidPlugins.setMainThreadSchedulerHandler(
new Function<Scheduler, Scheduler>() {
@Override
public Scheduler apply(Scheduler scheduler) throws Exception {
return delegatingMainThreadScheduler;
}
});
}
public Statement apply(Statement base, Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
Scheduler scheduler = TrampolineScheduler.instance();
Function<Callable<Scheduler>, Scheduler> schedulerFn = __ -> scheduler;
RxJavaPlugins.reset();
RxJavaPlugins.setInitIoSchedulerHandler(schedulerFn);
RxJavaPlugins.setInitNewThreadSchedulerHandler(schedulerFn);
RxAndroidPlugins.reset();
RxAndroidPlugins.setInitMainThreadSchedulerHandler(schedulerFn);
try {
base.evaluate();
} finally {
RxJavaPlugins.reset();
RxAndroidPlugins.reset();
}
}
};
}
@Override
public Statement apply(final Statement base, Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
RxAndroidPlugins.reset();
RxAndroidPlugins.setInitMainThreadSchedulerHandler(schedulerMapperLazy);
RxJavaPlugins.reset();
RxJavaPlugins.setIoSchedulerHandler(schedulerMapper);
RxJavaPlugins.setNewThreadSchedulerHandler(schedulerMapper);
RxJavaPlugins.setComputationSchedulerHandler(schedulerMapper);
TavernaApplication application = TavernaApplication.get(mContext);
application.setComponent(mTestComponent);
base.evaluate();
application.setComponent(null);
RxAndroidPlugins.reset();
RxJavaPlugins.reset();
}
};
}
@Override
public Statement apply(final Statement base, Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
RxAndroidPlugins.reset();
RxAndroidPlugins.setInitMainThreadSchedulerHandler(mRxAndroidSchedulersHook);
RxJavaPlugins.reset();
RxJavaPlugins.setIoSchedulerHandler(mRxJavaImmediateScheduler);
RxJavaPlugins.setNewThreadSchedulerHandler(mRxJavaImmediateScheduler);
base.evaluate();
RxAndroidPlugins.reset();
RxJavaPlugins.reset();
}
};
}
@Override
public Statement apply(final Statement base, Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
RxAndroidPlugins.reset();
RxAndroidPlugins.setInitMainThreadSchedulerHandler(schedulerFunctionLazy);
RxJavaPlugins.reset();
RxJavaPlugins.setIoSchedulerHandler(schedulerFunction);
RxJavaPlugins.setNewThreadSchedulerHandler(schedulerFunction);
RxJavaPlugins.setComputationSchedulerHandler(schedulerFunction);
base.evaluate();
RxAndroidPlugins.reset();
RxJavaPlugins.reset();
}
};
}
@Override
public Statement apply(Statement base, Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
RxJavaPlugins.reset();
RxJavaPlugins.setIoSchedulerHandler(scheduler -> Schedulers.trampoline());
RxAndroidPlugins.reset();
RxAndroidPlugins.setMainThreadSchedulerHandler(scheduler -> Schedulers.trampoline());
base.evaluate();
}
};
}
@Override
public Statement apply(Statement base, Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
RxJavaPlugins.reset();
RxJavaPlugins.setIoSchedulerHandler(scheduler -> Schedulers.trampoline());
RxAndroidPlugins.reset();
RxAndroidPlugins.setMainThreadSchedulerHandler(scheduler -> Schedulers.trampoline());
base.evaluate();
}
};
}
@Override
protected void finished(Description description) {
RxAndroidPlugins.reset();
if (restoreHandlers) {
// https://github.com/ReactiveX/RxAndroid/pull/358
//
// RxAndroidPlugins.setInitMainThreadSchedulerHandler(originalInitMainThreadInitHandler);
// RxAndroidPlugins.setMainThreadSchedulerHandler(originalMainThreadHandler);
}
}
@Override
public Statement apply(final Statement base, Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
RxJavaPlugins.reset();
RxJavaPlugins.setIoSchedulerHandler(scheduler -> Schedulers.trampoline());
RxAndroidPlugins.reset();
RxAndroidPlugins.setMainThreadSchedulerHandler(scheduler -> Schedulers.trampoline());
base.evaluate();
}
};
}
@After
public void tearDown(){
mockMvpPresenter.onDetach();
RxAndroidPlugins.reset();
}
private void resetPlugins() {
RxJavaPlugins.reset();
RxAndroidPlugins.reset();
}
@After
public void cleanup() {
RxAndroidPlugins.reset();
}
@AfterClass
public static void tearDown() {
RxAndroidPlugins.reset();
}
@AfterClass
public static void tearDown() {
RxAndroidPlugins.reset();
}
@AfterClass public static void tearDown() throws Exception {
RxAndroidPlugins.reset();
}
private void resetSchedulers() {
RxAndroidPlugins.reset();
RxJavaPlugins.reset();
}