Skip to content

Commit

Permalink
Add KojectExtrasWithNamedTest
Browse files Browse the repository at this point in the history
  • Loading branch information
mori-atsushi committed Mar 10, 2023
1 parent c643e41 commit 9250d03
Show file tree
Hide file tree
Showing 9 changed files with 76 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import org.mockito.kotlin.mock
private val mockApplication: Application by lazy { mock() }

actual fun Koject.setExtras() {
application(mock())
application(mockApplication)
addCommonExtras()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,24 @@ annotation class WithNamedComponent

@ComponentExtras(WithNamedComponent::class)
class WithNamedComponentExtras(
@Named("constructor")
val constructorValue: String = "named-constructor",
@Named("component-constructor")
val constructorValue: String = "component-named-constructor",
) {
@Named("property")
val propertyValue: String = "named-property"
@Named("component-property")
val propertyValue: String = "component-named-property"

@Named("getter")
@Named("component-getter")
val getterValue: String
get() = "named-getter"
get() = "component-named-getter"
}

@WithNamedComponent
@Provides
class WithNamedComponentClass(
@Named("constructor")
@Named("component-constructor")
val constructorValue: String,
@Named("property")
@Named("component-property")
val propertyValue: String,
@Named("getter")
@Named("component-getter")
val getterValue: String,
)
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ annotation class GetterQualifier
@ComponentExtras(WithQualifierComponent::class)
class WithQualifierComponentExtras(
@ConstructorQualifier
val constructorValue: String = "constructor",
val constructorValue: String = "component-constructor",
) {
@PropertyQualifier
val propertyValue: String = "property"
val propertyValue: String = "component-property"

@GetterQualifier
val getterValue: String
get() = "getter"
get() = "component-getter"
}

@WithQualifierComponent
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
@file:OptIn(ExperimentalKojectApi::class)

package com.moriatsushi.koject.integrationtest.app.extras

import com.moriatsushi.koject.ExperimentalKojectApi
import com.moriatsushi.koject.Named
import com.moriatsushi.koject.Provides
import com.moriatsushi.koject.extras.KojectExtras

@KojectExtras
class WithNamedExtras(
@Named("constructor")
val constructorValue: String = "named-constructor",
) {
@Named("property")
val propertyValue: String = "named-property"

@Named("getter")
val getterValue: String
get() = "named-getter"
}

@Provides
class WithNamedComponentExtrasHolder(
@Named("constructor")
val constructorValue: String,
@Named("property")
val propertyValue: String,
@Named("getter")
val getterValue: String,
)
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.moriatsushi.koject.Koject
import com.moriatsushi.koject.integrationtest.app.extras.GlobalExtraClass1
import com.moriatsushi.koject.integrationtest.app.extras.GlobalExtraSingleton1
import com.moriatsushi.koject.integrationtest.app.extras.GlobalExtras
import com.moriatsushi.koject.integrationtest.app.extras.WithNamedExtras
import com.moriatsushi.koject.integrationtest.app.extras.WithQualifierExtras
import com.moriatsushi.koject.start

Expand All @@ -22,6 +23,7 @@ fun Koject.runTest(
fun Koject.addCommonExtras() {
addExtras(GlobalExtras(GlobalExtraClass1(), GlobalExtraSingleton1()))
addExtras(WithQualifierExtras())
addExtras(WithNamedExtras())
}

expect fun Koject.setExtras()
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ class ComponentExtrasWithNamedTest {
val value = inject<WithNamedComponentClass>(
componentExtras = extras,
)
assertEquals("named-constructor", value.constructorValue)
assertEquals("named-property", value.propertyValue)
assertEquals("named-getter", value.getterValue)
assertEquals("component-named-constructor", value.constructorValue)
assertEquals("component-named-property", value.propertyValue)
assertEquals("component-named-getter", value.getterValue)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ class ComponentExtrasWithQualifierTest {
val value = inject<WithQualifierComponentClass>(
componentExtras = extras,
)
assertEquals("constructor", value.constructorValue)
assertEquals("property", value.propertyValue)
assertEquals("getter", value.getterValue)
assertEquals("component-constructor", value.constructorValue)
assertEquals("component-property", value.propertyValue)
assertEquals("component-getter", value.getterValue)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
@file:OptIn(ExperimentalKojectApi::class)

package com.moriatsushi.koject.integrationtest.app.extras

import com.moriatsushi.koject.ExperimentalKojectApi
import com.moriatsushi.koject.Koject
import com.moriatsushi.koject.inject
import com.moriatsushi.koject.integrationtest.app.runTest
import kotlin.test.Test
import kotlin.test.assertEquals

class KojectExtrasWithNamedTest {
@Test
fun successInject() = Koject.runTest {
val holder = inject<WithNamedComponentExtrasHolder>()
assertEquals("named-constructor", holder.constructorValue)
assertEquals("named-property", holder.propertyValue)
assertEquals("named-getter", holder.getterValue)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ import kotlin.test.assertEquals
class KojectExtrasWithQualifierTest {
@Test
fun successInject() = Koject.runTest {
val value = inject<WithQualifierExtrasHolder>()
assertEquals("constructor", value.constructorValue)
assertEquals("property", value.propertyValue)
assertEquals("getter", value.getterValue)
val holder = inject<WithQualifierExtrasHolder>()
assertEquals("constructor", holder.constructorValue)
assertEquals("property", holder.propertyValue)
assertEquals("getter", holder.getterValue)
}
}

0 comments on commit 9250d03

Please sign in to comment.