Skip to content

Commit 25601ab

Browse files
ZacSweerstschuchortdev
authored andcommitted
Update test for new multiple-rounds behavior
1 parent 9dd9527 commit 25601ab

File tree

1 file changed

+32
-25
lines changed
  • ksp/src/test/kotlin/com/tschuchort/compiletesting

1 file changed

+32
-25
lines changed

ksp/src/test/kotlin/com/tschuchort/compiletesting/KspTest.kt

+32-25
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import org.junit.Test
1414
import org.junit.runner.RunWith
1515
import org.junit.runners.JUnit4
1616
import org.mockito.Mockito.`when`
17+
import java.util.concurrent.atomic.AtomicInteger
1718

1819
@RunWith(JUnit4::class)
1920
class KspTest {
@@ -70,21 +71,23 @@ class KspTest {
7071
val processor = object : AbstractTestSymbolProcessor() {
7172
override fun process(resolver: Resolver): List<KSAnnotated> {
7273
val symbols = resolver.getSymbolsWithAnnotation("foo.bar.TestAnnotation")
73-
assertThat(symbols.size).isEqualTo(1)
74-
val klass = symbols.first()
75-
check(klass is KSClassDeclaration)
76-
val qName = klass.qualifiedName ?: error("should've found qualified name")
77-
val genPackage = "${qName.getQualifier()}.generated"
78-
val genClassName = "${qName.getShortName()}_Gen"
79-
codeGenerator.createNewFile(
80-
dependencies = Dependencies.ALL_FILES,
81-
packageName = genPackage,
82-
fileName = genClassName
83-
).bufferedWriter(Charsets.UTF_8).use {
84-
it.write("""
85-
package $genPackage
86-
class $genClassName() {}
87-
""".trimIndent())
74+
if (symbols.isNotEmpty()) {
75+
assertThat(symbols.size).isEqualTo(1)
76+
val klass = symbols.first()
77+
check(klass is KSClassDeclaration)
78+
val qName = klass.qualifiedName ?: error("should've found qualified name")
79+
val genPackage = "${qName.getQualifier()}.generated"
80+
val genClassName = "${qName.getShortName()}_Gen"
81+
codeGenerator.createNewFile(
82+
dependencies = Dependencies.ALL_FILES,
83+
packageName = genPackage,
84+
fileName = genClassName
85+
).bufferedWriter(Charsets.UTF_8).use {
86+
it.write("""
87+
package $genPackage
88+
class $genClassName() {}
89+
""".trimIndent())
90+
}
8891
}
8992
return emptyList()
9093
}
@@ -201,19 +204,23 @@ class KspTest {
201204

202205
internal open class ClassGeneratingProcessor(
203206
private val packageName: String,
204-
private val className: String
207+
private val className: String,
208+
times: Int = 1
205209
) : AbstractTestSymbolProcessor() {
210+
val times = AtomicInteger(times)
206211
override fun process(resolver: Resolver): List<KSAnnotated> {
207212
super.process(resolver)
208-
codeGenerator.createNewFile(
209-
dependencies = Dependencies.ALL_FILES,
210-
packageName = packageName,
211-
fileName = className
212-
).bufferedWriter(Charsets.UTF_8).use {
213-
it.write("""
214-
package $packageName
215-
class $className() {}
216-
""".trimIndent())
213+
if (times.decrementAndGet() == 0) {
214+
codeGenerator.createNewFile(
215+
dependencies = Dependencies.ALL_FILES,
216+
packageName = packageName,
217+
fileName = className
218+
).bufferedWriter(Charsets.UTF_8).use {
219+
it.write("""
220+
package $packageName
221+
class $className() {}
222+
""".trimIndent())
223+
}
217224
}
218225
return emptyList()
219226
}

0 commit comments

Comments
 (0)