android13/external/dagger2/javatests/dagger/hilt/android/testing/BindValueInKotlinValTest.kt

60 lines
1.7 KiB
Kotlin

package dagger.hilt.android.testing
import androidx.test.core.app.ApplicationProvider.getApplicationContext
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.google.common.truth.Truth.assertThat
import dagger.hilt.EntryPoint
import dagger.hilt.EntryPoints
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Named
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.annotation.Config
@HiltAndroidTest
@RunWith(AndroidJUnit4::class)
@Config(application = HiltTestApplication::class)
class BindValueInKotlinValTest {
@EntryPoint
@InstallIn(SingletonComponent::class)
interface BindValueEntryPoint {
fun bindValueString1(): String
@Named(TEST_QUALIFIER)
fun bindValueString2(): String
}
@get:Rule
val rule = HiltAndroidRule(this)
@BindValue
val bindValueString1 = BIND_VALUE_STRING1
@BindValue
@Named(TEST_QUALIFIER)
val bindValueString2 = BIND_VALUE_STRING2
@Test
fun testBindValueFieldIsProvided() {
assertThat(bindValueString1).isEqualTo(BIND_VALUE_STRING1)
assertThat(getBinding1()).isEqualTo(BIND_VALUE_STRING1)
assertThat(bindValueString2).isEqualTo(BIND_VALUE_STRING2)
assertThat(getBinding2()).isEqualTo(BIND_VALUE_STRING2)
}
companion object {
private const val BIND_VALUE_STRING1 = "BIND_VALUE_STRING1"
private const val BIND_VALUE_STRING2 = "BIND_VALUE_STRING2"
private const val TEST_QUALIFIER = "TEST_QUALIFIER"
private fun getBinding1() =
EntryPoints.get(getApplicationContext(), BindValueEntryPoint::class.java).bindValueString1()
private fun getBinding2() =
EntryPoints.get(getApplicationContext(), BindValueEntryPoint::class.java).bindValueString2()
}
}