Skip to content

Commit

Permalink
add a base case test for tracking source files with a single source p…
Browse files Browse the repository at this point in the history
…er generated

context: #836 (comment)
  • Loading branch information
RBusarow committed Feb 8, 2024
1 parent ed9d138 commit 9766ba2
Showing 1 changed file with 36 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.squareup.anvil.compiler.compile
import com.squareup.anvil.compiler.internal.testing.SimpleCodeGenerator
import com.squareup.anvil.compiler.internal.testing.SimpleSourceFileTrackingBehavior.NO_SOURCE_TRACKING
import com.squareup.anvil.compiler.internal.testing.SimpleSourceFileTrackingBehavior.TRACKING_WITH_NO_SOURCES
import com.squareup.anvil.compiler.internal.testing.SimpleSourceFileTrackingBehavior.TRACK_SOURCE_FILES
import com.squareup.anvil.compiler.internal.testing.simpleCodeGenerator
import com.squareup.anvil.compiler.isError
import com.tschuchort.compiletesting.KotlinCompilation.ExitCode.COMPILATION_ERROR
Expand Down Expand Up @@ -203,6 +204,41 @@ class CodeGenerationExtensionTest {
}
}

@Test fun `a code generator that tracks an a single source per generated file can use trackSourceFiles`() {

val codeGenerator = simpleCodeGenerator(TRACK_SOURCE_FILES) { clazz ->

if (clazz.shortName == "Abc") {
return@simpleCodeGenerator null
}

"""
package com.squareup.test
class Abc
""".trimIndent()
}

//language=kotlin
val componentInterface = """
package com.squareup.test
interface ComponentInterface
""".trimIndent()

compile(
componentInterface,
codeGenerators = listOf(codeGenerator),
trackSourceFiles = true,
) {
assertThat(codeGenerator.isApplicableCalls).isEqualTo(1)
assertThat(codeGenerator.getGenerateCallsForInputFileContent(componentInterface)).isEqualTo(1)

assertThat(exitCode).isEqualTo(OK)
assertThat(classLoader.loadClass("com.squareup.test.Abc")).isNotNull()
}
}

@Test
fun `a code generator that does not track sources can compile with trackSourceFiles disabled`() {
val codeGenerator = simpleCodeGenerator(NO_SOURCE_TRACKING) { clazz ->
Expand Down

0 comments on commit 9766ba2

Please sign in to comment.