Skip to content

Instantly share code, notes, and snippets.

@esilverberg
Created November 24, 2020 17:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save esilverberg/e0d5c93959f87fae69cc1baa238873ff to your computer and use it in GitHub Desktop.
Save esilverberg/e0d5c93959f87fae69cc1baa238873ff to your computer and use it in GitHub Desktop.
class InstantExecutorExtension : BeforeEachCallback, AfterEachCallback {
override fun beforeEach(context: ExtensionContext?) {
ArchTaskExecutor.getInstance()
.setDelegate(object : TaskExecutor() {
override fun executeOnDiskIO(runnable: Runnable) = runnable.run()
override fun postToMainThread(runnable: Runnable) = runnable.run()
override fun isMainThread(): Boolean = true
})
}
override fun afterEach(context: ExtensionContext?) {
ArchTaskExecutor.getInstance().setDelegate(null)
}
}
class RxTestSchedulersExtension: BeforeAllCallback {
override fun beforeAll(context: ExtensionContext?) {
RxAndroidPlugins.setInitMainThreadSchedulerHandler { Schedulers.trampoline() }
RxJavaPlugins.setIoSchedulerHandler{ Schedulers.trampoline() }
RxJavaPlugins.setNewThreadSchedulerHandler{ Schedulers.trampoline() }
RxJavaPlugins.setSingleSchedulerHandler { Schedulers.trampoline() }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment