[TEST-GEN] Move all generation data to TestGroup.TestClass
This commit is contained in:
+11
-9
@@ -39,20 +39,22 @@ class TestGroup(
|
|||||||
annotations: List<AnnotationModel> = emptyList(),
|
annotations: List<AnnotationModel> = emptyList(),
|
||||||
init: TestClass.() -> Unit
|
init: TestClass.() -> Unit
|
||||||
) {
|
) {
|
||||||
val generationData = TestGenerator.GenerationData(
|
val testClass = TestClass(baseTestClassName, suiteTestClassName, useJunit4, annotations).apply(init)
|
||||||
testsRoot,
|
val (changed, testSourceFilePath) = TestGeneratorImpl.generateAndSave(testClass, dryRun)
|
||||||
suiteTestClassName,
|
|
||||||
baseTestClassName,
|
|
||||||
TestClass(annotations).apply(init).testModels,
|
|
||||||
useJunit4,
|
|
||||||
)
|
|
||||||
val (changed, testSourceFilePath) = TestGeneratorImpl.generateAndSave(generationData, dryRun)
|
|
||||||
if (changed) {
|
if (changed) {
|
||||||
inconsistencyChecker(dryRun).add(testSourceFilePath)
|
inconsistencyChecker(dryRun).add(testSourceFilePath)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class TestClass(val annotations: List<AnnotationModel>) {
|
inner class TestClass(
|
||||||
|
val baseTestClassName: String,
|
||||||
|
val suiteTestClassName: String,
|
||||||
|
val useJunit4: Boolean,
|
||||||
|
val annotations: List<AnnotationModel>
|
||||||
|
) {
|
||||||
|
val baseDir: String
|
||||||
|
get() = this@TestGroup.testsRoot
|
||||||
|
|
||||||
val testModels = ArrayList<TestClassModel>()
|
val testModels = ArrayList<TestClassModel>()
|
||||||
|
|
||||||
fun model(
|
fun model(
|
||||||
|
|||||||
+2
-10
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.generators.tests.generator.generators
|
package org.jetbrains.kotlin.generators.tests.generator.generators
|
||||||
|
|
||||||
import org.jetbrains.kotlin.generators.tests.generator.MethodModel
|
import org.jetbrains.kotlin.generators.tests.generator.MethodModel
|
||||||
import org.jetbrains.kotlin.generators.tests.generator.TestClassModel
|
import org.jetbrains.kotlin.generators.tests.generator.TestGroup
|
||||||
|
|
||||||
abstract class TestGenerator(
|
abstract class TestGenerator(
|
||||||
methodGenerators: List<MethodGenerator<*>>
|
methodGenerators: List<MethodGenerator<*>>
|
||||||
@@ -14,15 +14,7 @@ abstract class TestGenerator(
|
|||||||
protected val methodGenerators: Map<MethodModel.Kind, MethodGenerator<*>> =
|
protected val methodGenerators: Map<MethodModel.Kind, MethodGenerator<*>> =
|
||||||
methodGenerators.associateBy { it.kind }.withDefault { error("Generator for method with kind $it not found") }
|
methodGenerators.associateBy { it.kind }.withDefault { error("Generator for method with kind $it not found") }
|
||||||
|
|
||||||
abstract fun generateAndSave(data: GenerationData, dryRun: Boolean): GenerationResult
|
abstract fun generateAndSave(testClass: TestGroup.TestClass, dryRun: Boolean): GenerationResult
|
||||||
|
|
||||||
data class GenerationData(
|
|
||||||
val baseDir: String,
|
|
||||||
val suiteTestClassFqName: String,
|
|
||||||
val baseTestClassFqName: String,
|
|
||||||
val testClassModels: Collection<TestClassModel>,
|
|
||||||
val useJunit4: Boolean
|
|
||||||
)
|
|
||||||
|
|
||||||
data class GenerationResult(val newFileGenerated: Boolean, val testSourceFilePath: String)
|
data class GenerationResult(val newFileGenerated: Boolean, val testSourceFilePath: String)
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-7
@@ -28,14 +28,13 @@ private val METHOD_GENERATORS = listOf(
|
|||||||
)
|
)
|
||||||
|
|
||||||
object TestGeneratorImpl : TestGenerator(METHOD_GENERATORS) {
|
object TestGeneratorImpl : TestGenerator(METHOD_GENERATORS) {
|
||||||
override fun generateAndSave(data: GenerationData, dryRun: Boolean): GenerationResult {
|
override fun generateAndSave(testClass: TestGroup.TestClass, dryRun: Boolean): GenerationResult {
|
||||||
val (baseDir, suiteTestClassFqName, baseTestClassFqName, testClassModels, useJunit4) = data
|
|
||||||
val generatorInstance = TestGeneratorImplInstance(
|
val generatorInstance = TestGeneratorImplInstance(
|
||||||
baseDir,
|
testClass.baseDir,
|
||||||
suiteTestClassFqName,
|
testClass.suiteTestClassName,
|
||||||
baseTestClassFqName,
|
testClass.baseTestClassName,
|
||||||
testClassModels,
|
testClass.testModels,
|
||||||
useJunit4,
|
testClass.useJunit4,
|
||||||
methodGenerators
|
methodGenerators
|
||||||
)
|
)
|
||||||
return generatorInstance.generateAndSave(dryRun)
|
return generatorInstance.generateAndSave(dryRun)
|
||||||
|
|||||||
Reference in New Issue
Block a user