diff options
Diffstat (limited to 'integration-tests/src/test/kotlin/com/google/devtools/ksp/test/GetSealedSubclassesIncIT.kt')
-rw-r--r-- | integration-tests/src/test/kotlin/com/google/devtools/ksp/test/GetSealedSubclassesIncIT.kt | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/integration-tests/src/test/kotlin/com/google/devtools/ksp/test/GetSealedSubclassesIncIT.kt b/integration-tests/src/test/kotlin/com/google/devtools/ksp/test/GetSealedSubclassesIncIT.kt new file mode 100644 index 00000000..29f56108 --- /dev/null +++ b/integration-tests/src/test/kotlin/com/google/devtools/ksp/test/GetSealedSubclassesIncIT.kt @@ -0,0 +1,56 @@ +package com.google.devtools.ksp.test + +import org.gradle.testkit.runner.GradleRunner +import org.junit.Assert +import org.junit.Rule +import org.junit.Test +import java.io.File + +class GetSealedSubclassesIncIT { + @Rule + @JvmField + val project: TemporaryTestProject = TemporaryTestProject("sealed-subclasses", "test-processor") + + @Test + fun testGetSealedSubclassesInc() { + val gradleRunner = GradleRunner.create().withProjectDir(project.root) + + val expected2 = listOf( + "w: [ksp] Processing Impl1.kt", + "w: [ksp] Impl1 : []", + "w: [ksp] Processing Impl2.kt", + "w: [ksp] Impl2 : []", + "w: [ksp] Processing Sealed.kt", + "w: [ksp] Sealed : [Impl1, Impl2]", + ) + + val expected3 = listOf( + "w: [ksp] Processing Impl1.kt", + "w: [ksp] Impl1 : []", + "w: [ksp] Processing Impl2.kt", + "w: [ksp] Impl2 : []", + "w: [ksp] Processing Impl3.kt", + "w: [ksp] Impl3 : []", + "w: [ksp] Processing Sealed.kt", + "w: [ksp] Sealed : [Impl1, Impl2, Impl3]", + ) + + gradleRunner.withArguments("assemble").build().let { result -> + val outputs = result.output.lines().filter { it.startsWith("w: [ksp]") } + Assert.assertEquals(expected2, outputs) + } + + File(project.root, "workload/src/main/kotlin/com/example/Impl3.kt").appendText("package com.example\n\n") + File(project.root, "workload/src/main/kotlin/com/example/Impl3.kt").appendText("class Impl3 : Sealed()\n") + gradleRunner.withArguments("assemble").build().let { result -> + val outputs = result.output.lines().filter { it.startsWith("w: [ksp]") } + Assert.assertEquals(expected3, outputs) + } + + File(project.root, "workload/src/main/kotlin/com/example/Impl3.kt").delete() + gradleRunner.withArguments("assemble").build().let { result -> + val outputs = result.output.lines().filter { it.startsWith("w: [ksp]") } + Assert.assertEquals(expected2, outputs) + } + } +} |