Skip to content

Instantly share code, notes, and snippets.

@shredderskelton
Created February 20, 2021 15:05
Show Gist options
  • Save shredderskelton/8e764df7e39322500bfb0746096d27ae to your computer and use it in GitHub Desktop.
Save shredderskelton/8e764df7e39322500bfb0746096d27ae to your computer and use it in GitHub Desktop.
RxScheduler
class RxSchedulersOverrideRule(private val scheduler: Scheduler = TestScheduler()) : TestRule {
private val handler = Function<Scheduler, Scheduler> { scheduler }
override fun apply(base: Statement, description: Description): Statement =
object : Statement() {
override fun evaluate() {
RxJavaPlugins.reset()
RxAndroidPlugins.reset()
RxJavaPlugins.setIoSchedulerHandler(handler)
RxJavaPlugins.setNewThreadSchedulerHandler(handler)
RxJavaPlugins.setComputationSchedulerHandler(handler)
RxJavaPlugins.setSingleSchedulerHandler(handler)
RxAndroidPlugins.setMainThreadSchedulerHandler(handler)
try {
base.evaluate()
} finally {
RxJavaPlugins.reset()
RxAndroidPlugins.reset()
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment