Created
July 8, 2016 16:50
-
-
Save kaushikgopal/b680b69953cc5a5692581f69b8c9c65c to your computer and use it in GitHub Desktop.
Lazy man's RxJava Espresso Scheduler Hooks
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class RxSchedulerHook { | |
private ISRxSchedulerHook() { | |
// no instances | |
} | |
/** | |
* this makes sure that when we run the tests all of RxJava | |
* operates on a single thread (Scheduler.immediate) | |
*/ | |
public static void registerHooksForTesting() { | |
RxJavaPlugins.getInstance().registerSchedulersHook(new RxJavaTestSchedulerHook()); | |
//RxAndroidPlugins.getInstance().registerSchedulersHook(new RxAndroidTestSchedulerHook()); | |
} | |
static class RxAndroidTestSchedulerHook | |
extends RxAndroidSchedulersHook { | |
// we use the async task scheduler because Espresso already knows how to handle this executor :D | |
@Override | |
public Scheduler getMainThreadScheduler() { | |
return Schedulers.from(AsyncTask.THREAD_POOL_EXECUTOR); | |
} | |
} | |
static class RxJavaTestSchedulerHook | |
extends RxJavaSchedulersHook { | |
// we use the async task scheduler because Espresso already knows how to handle this executor :D | |
@Override | |
public Scheduler getComputationScheduler() { | |
return Schedulers.from(AsyncTask.THREAD_POOL_EXECUTOR); | |
} | |
@Override | |
public Scheduler getIOScheduler() { | |
return Schedulers.from(AsyncTask.THREAD_POOL_EXECUTOR); | |
} | |
@Override | |
public Scheduler getNewThreadScheduler() { | |
return Schedulers.from(AsyncTask.THREAD_POOL_EXECUTOR); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment