Skip to content

Commit

Permalink
Fix typo in PropertyQualifierTest and add test for property setter an…
Browse files Browse the repository at this point in the history
…notation

RELNOTES=n/a
PiperOrigin-RevId: 629786551
  • Loading branch information
wanyingd1996 authored and Dagger Team committed May 1, 2024
1 parent afd1011 commit 9a67471
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 35 deletions.
60 changes: 25 additions & 35 deletions javatests/dagger/functional/kotlin/PropertyQualifierClasses.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,56 +26,40 @@ import javax.inject.Qualifier
@Component(modules = [TestKotlinModuleWithQualifier::class])
interface TestKotlinComponentWithQualifier {
fun inject(testInjectedClassWithQualifier: TestMemberInjectedClassWithQualifier)

fun inject(fooWithInjectedQualifier: FooWithInjectedQualifier)
}

@Module
class TestKotlinModuleWithQualifier {
@Provides
@JavaTestQualifier
fun provideJavaDataA() = TestDataA("test")
@Provides @JavaTestQualifier fun provideJavaDataA() = TestDataA("test")

@Provides
@JavaTestQualifier
fun provideJavaDataB() = TestDataB("test")
@Provides @JavaTestQualifier fun provideJavaDataB() = TestDataB("test")

@Provides
@JavaTestQualifierWithTarget
fun provideJavaWithTargetDataA() = TestDataA("test")
@Provides @JavaTestQualifierWithTarget fun provideJavaWithTargetDataA() = TestDataA("test")

@Provides
@KotlinTestQualifier
fun provideKotlinDataA() = TestDataA("test")
@Provides @KotlinTestQualifier fun provideKotlinDataA() = TestDataA("test")

@Provides
@JavaTestQualifier
fun provideString() = "qualified string"
@Provides @JavaTestQualifier fun provideString() = "qualified string"
}

class TestConstructionInjectedClassWithQualifier @Inject constructor(
@JavaTestQualifier val data: TestDataA
)
class TestConstructionInjectedClassWithQualifier
@Inject
constructor(@JavaTestQualifier val data: TestDataA)

@TriggerGeneratedTypeProcessor
class TestMemberInjectedClassWithQualifier {
@Inject
@JavaTestQualifier
lateinit var javaDataA: TestDataA
@Inject @JavaTestQualifier lateinit var javaDataA: TestDataA

@Inject @field:JavaTestQualifier lateinit var javaDataB: TestDataB

@Inject
@field:JavaTestQualifier
lateinit var javaDataB: TestDataB
@Inject @JavaTestQualifierWithTarget lateinit var javaWithTargetDataA: TestDataA

@Inject
@JavaTestQualifierWithTarget
lateinit var javaWithTargetDataA: TestDataA
@Inject @KotlinTestQualifier lateinit var kotlinDataA: TestDataA

@Inject
@JavaTestQualifier
lateinit var kotlinDataA: TestDataA
@set:Inject @setparam:KotlinTestQualifier var kotlinDataA2: TestDataA? = null

@Inject
lateinit var dataWithConstructionInjection: TestConstructionInjectedClassWithQualifier
@Inject lateinit var dataWithConstructionInjection: TestConstructionInjectedClassWithQualifier

val noBackingFieldProperty: Int
get() = 0
Expand All @@ -88,8 +72,14 @@ class TestMemberInjectedClassWithQualifier {
}

data class TestDataA(val data: String)

data class TestDataB(val data: String)

@Qualifier
@Retention(AnnotationRetention.RUNTIME)
annotation class KotlinTestQualifier
@Target(
AnnotationTarget.FUNCTION,
AnnotationTarget.PROPERTY,
AnnotationTarget.VALUE_PARAMETER,
AnnotationTarget.FIELD,
AnnotationTarget.PROPERTY_SETTER,
)
@Qualifier @Retention(AnnotationRetention.RUNTIME) annotation class KotlinTestQualifier
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public void verifyQualifiedBinding() {
assertThat(injectedClass.javaDataB).isNotNull();
assertThat(injectedClass.javaWithTargetDataA).isNotNull();
assertThat(injectedClass.kotlinDataA).isNotNull();
assertThat(injectedClass.getKotlinDataA2()).isNotNull();
assertThat(injectedClass.dataWithConstructionInjection).isNotNull();
assertThat(injectedClass.dataWithConstructionInjection.getData()).isNotNull();
}
Expand Down

0 comments on commit 9a67471

Please sign in to comment.