Skip to content

Commit 7b0079b

Browse files
authored
Check koin modules (#51)
* checkKoinModules * by stateViewModel() is deprecated and will merged in by viewModel()
1 parent 5a1c46e commit 7b0079b

File tree

5 files changed

+45
-19
lines changed

5 files changed

+45
-19
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,5 @@ dependencies {
7373
androidTestImplementation(deps.test.androidXSspresso)
7474

7575
addUnitTest()
76+
testImplementation(deps.koin.testJunit4)
7677
}

app/src/main/java/com/hoc/flowmvi/App.kt

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,19 @@ import org.koin.core.context.startKoin
1515
import org.koin.core.logger.Level
1616
import kotlin.time.ExperimentalTime
1717

18+
@FlowPreview
19+
@ExperimentalCoroutinesApi
20+
@ExperimentalStdlibApi
21+
@ExperimentalTime
22+
val allModules = listOf(
23+
coreModule,
24+
dataModule,
25+
domainModule,
26+
mainModule,
27+
addModule,
28+
searchModule,
29+
)
30+
1831
@Suppress("unused")
1932
@ExperimentalStdlibApi
2033
@FlowPreview
@@ -29,14 +42,7 @@ class App : Application() {
2942

3043
androidLogger(if (BuildConfig.DEBUG) Level.DEBUG else Level.NONE)
3144

32-
modules(
33-
coreModule,
34-
dataModule,
35-
domainModule,
36-
mainModule,
37-
addModule,
38-
searchModule,
39-
)
45+
modules(allModules)
4046
}
4147
}
4248
}
Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,34 @@
11
package com.hoc.flowmvi
22

3+
import androidx.lifecycle.SavedStateHandle
4+
import io.mockk.every
5+
import io.mockk.mockkClass
6+
import kotlinx.coroutines.ExperimentalCoroutinesApi
7+
import kotlinx.coroutines.FlowPreview
8+
import org.junit.Rule
9+
import org.koin.test.check.checkKoinModules
10+
import org.koin.test.mock.MockProviderRule
311
import kotlin.test.Test
4-
import kotlin.test.assertEquals
12+
import kotlin.time.ExperimentalTime
513

6-
/**
7-
* Example local unit test, which will execute on the development machine (host).
8-
*
9-
* See [testing documentation](http://d.android.com/tools/testing).
10-
*/
14+
@ExperimentalStdlibApi
15+
@FlowPreview
16+
@ExperimentalCoroutinesApi
17+
@ExperimentalTime
1118
class ExampleUnitTest {
19+
@get:Rule
20+
val mockProvider = MockProviderRule.create { clazz ->
21+
mockkClass(clazz).also { o ->
22+
if (clazz == SavedStateHandle::class) {
23+
every { (o as SavedStateHandle).get<Any?>(any()) } returns null
24+
}
25+
}
26+
}
27+
1228
@Test
13-
fun addition_isCorrect() {
14-
assertEquals(4, 2 + 2)
29+
fun verifyKoinApp() {
30+
checkKoinModules(allModules) {
31+
withInstance<SavedStateHandle>()
32+
}
1533
}
1634
}

buildSrc/src/main/kotlin/deps.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,11 @@ object deps {
5959
}
6060

6161
object koin {
62-
private const val version = "3.0.2"
62+
private const val version = "3.1.3"
6363

6464
const val core = "io.insert-koin:koin-core:$version"
6565
const val android = "io.insert-koin:koin-android:$version"
66+
const val testJunit4 = "io.insert-koin:koin-test-junit4:$version"
6667
}
6768

6869
const val coil = "io.coil-kt:coil:1.2.1"

feature-add/src/main/java/com/hoc/flowmvi/ui/add/AddActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ import kotlinx.coroutines.flow.launchIn
2424
import kotlinx.coroutines.flow.map
2525
import kotlinx.coroutines.flow.merge
2626
import kotlinx.coroutines.flow.onEach
27-
import org.koin.androidx.viewmodel.ext.android.stateViewModel
27+
import org.koin.androidx.viewmodel.ext.android.viewModel
2828

2929
@ExperimentalCoroutinesApi
3030
class AddActivity : AppCompatActivity(R.layout.activity_add) {
31-
private val addVM by stateViewModel<AddVM>()
31+
private val addVM by viewModel<AddVM>()
3232
private val addBinding by viewBinding<ActivityAddBinding>()
3333

3434
override fun onCreate(savedInstanceState: Bundle?) {

0 commit comments

Comments
 (0)