Refactoring
This commit is contained in:
+25
@@ -0,0 +1,25 @@
|
||||
package com.ericampire.android.androidstudycase.util.test
|
||||
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.test.TestCoroutineDispatcher
|
||||
import org.junit.jupiter.api.extension.ExtensionContext
|
||||
import org.junit.jupiter.api.extension.ParameterContext
|
||||
import org.junit.jupiter.api.extension.ParameterResolver
|
||||
|
||||
@ExperimentalCoroutinesApi
|
||||
class CoroutineDispatcherExtension : ParameterResolver {
|
||||
|
||||
override fun supportsParameter(
|
||||
parameterContext: ParameterContext,
|
||||
extensionContext: ExtensionContext?
|
||||
): Boolean {
|
||||
return parameterContext.parameter.type.equals(TestCoroutineDispatcher::class.java)
|
||||
}
|
||||
|
||||
override fun resolveParameter(
|
||||
parameterContext: ParameterContext?,
|
||||
extensionContext: ExtensionContext?
|
||||
): Any {
|
||||
return TestCoroutineDispatcher()
|
||||
}
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
package com.ericampire.android.androidstudycase.util.test
|
||||
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.test.TestCoroutineScope
|
||||
import org.junit.jupiter.api.extension.ExtensionContext
|
||||
import org.junit.jupiter.api.extension.ParameterContext
|
||||
import org.junit.jupiter.api.extension.ParameterResolver
|
||||
|
||||
@ExperimentalCoroutinesApi
|
||||
class CoroutineScopeExtension : ParameterResolver {
|
||||
override fun supportsParameter(
|
||||
parameterContext: ParameterContext,
|
||||
extensionContext: ExtensionContext?
|
||||
): Boolean {
|
||||
return parameterContext.parameter.type.equals(TestCoroutineScope::class.java)
|
||||
}
|
||||
|
||||
override fun resolveParameter(
|
||||
parameterContext: ParameterContext?,
|
||||
extensionContext: ExtensionContext?
|
||||
): Any {
|
||||
return TestCoroutineScope()
|
||||
}
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package com.ericampire.android.androidstudycase.util.test
|
||||
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.test.TestCoroutineDispatcher
|
||||
import kotlinx.coroutines.test.resetMain
|
||||
import kotlinx.coroutines.test.setMain
|
||||
import org.junit.jupiter.api.extension.AfterAllCallback
|
||||
import org.junit.jupiter.api.extension.BeforeAllCallback
|
||||
import org.junit.jupiter.api.extension.ExtensionContext
|
||||
|
||||
@ExperimentalCoroutinesApi
|
||||
class MainCoroutineExtension : BeforeAllCallback, AfterAllCallback {
|
||||
|
||||
private val testDispatcher: TestCoroutineDispatcher = TestCoroutineDispatcher()
|
||||
|
||||
override fun beforeAll(context: ExtensionContext?) {
|
||||
Dispatchers.setMain(testDispatcher)
|
||||
}
|
||||
|
||||
override fun afterAll(context: ExtensionContext?) {
|
||||
Dispatchers.resetMain()
|
||||
testDispatcher.cleanupTestCoroutines()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user