Skip to content

Commit

Permalink
start
Browse files Browse the repository at this point in the history
  • Loading branch information
AntonButov committed Nov 30, 2024
1 parent 7509deb commit 613d6b6
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 9 deletions.
3 changes: 3 additions & 0 deletions ksp-processor/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,11 @@ group = "com.code.factory"
version = "0.0.1"

dependencies {
implementation(project(":utils"))

implementation(kotlin("stdlib"))
implementation(libs.kotlin.kspApi)

testImplementation(kotlin("test"))
testImplementation(libs.tschuchortdev.testing.ksp)
}
Expand Down
25 changes: 25 additions & 0 deletions ksp-processor/src/test/kotlin/FindTypesTest.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,29 @@
import com.code.factory.File
import utils.compilationForAssertations
import kotlin.test.Test

class FindTypesTest {

@Test
fun `when contain A-type should find it`() {
val typeASource = """
class A {
}
""".trimIndent()

val mainCode = """
fun someFun() {
val classA = A()
}
""".trimIndent()

compilationForAssertations(typeASource, mainCode) {
getAllFiles().forEach { file ->
println(file.fileName)
}
}
}


}
3 changes: 2 additions & 1 deletion ksp-processor/src/test/kotlin/UsesCaseResolverTest.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import com.code.factory.ksp.KspProcessor
import com.code.factory.usescases.getInterfacesWithOutImplementation
import com.tschuchort.compiletesting.KotlinCompilation
import com.tschuchort.compiletesting.SourceFile
import utils.compilation
import utils.compilationForAssertations
import kotlin.test.Test
Expand All @@ -18,7 +19,7 @@ class UsesCaseResolverTest {
}
"""

val result = compilation(source, KspProcessor).compile()
val result = compilation(source, processorProvider = KspProcessor).compile()

assertEquals(KotlinCompilation.ExitCode.OK, result.exitCode)
}
Expand Down
16 changes: 8 additions & 8 deletions ksp-processor/src/test/kotlin/utils/Compilation.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,29 @@ import com.google.devtools.ksp.processing.SymbolProcessorProvider
import com.tschuchort.compiletesting.KotlinCompilation
import com.tschuchort.compiletesting.SourceFile
import com.tschuchort.compiletesting.symbolProcessorProviders
import kotlin.test.Test
import kotlin.test.assertEquals


fun compilationForAssertations(
source: String,
vararg sources: String,
assertAction: Resolver.() -> Unit
) {
val testKspProcessorProvider = TestKspProcessor.provider(assertAction)
compilation(sourceFile = source.toSomeClass(), processorProvider = testKspProcessorProvider)
compilation(sourceFiles = sources.toList().toSomeClasses(), processorProvider = testKspProcessorProvider)
.compile()
.also {
assertEquals(KotlinCompilation.ExitCode.OK, it.exitCode)
}
}

private fun String.toSomeClass() = SourceFile.kotlin("SomeClass.kt", this)
private fun List<String>.toSomeClasses(): List<SourceFile> = mapIndexed { index, name -> name.toSomeClass(index) }

fun compilation(source: String, processorProvider: SymbolProcessorProvider) =
compilation(source.toSomeClass(), processorProvider)
private fun String.toSomeClass(index: Int) = SourceFile.kotlin("SomeClass$index.kt", this)

fun compilation(sourceFile: SourceFile, processorProvider: SymbolProcessorProvider) =
compilation(listOf(sourceFile), processorProvider)
fun compilation(
vararg sources: String,
processorProvider: SymbolProcessorProvider
) = compilation(sources.toList().toSomeClasses(), processorProvider)

fun compilation(sourceFiles: List<SourceFile>, processorProvider: SymbolProcessorProvider) = KotlinCompilation().apply {
sources = sourceFiles
Expand Down

0 comments on commit 613d6b6

Please sign in to comment.