[TEST-GEN] Move all generation data to TestGroup.TestClass

This commit is contained in:
Dmitriy Novozhilov
2020-11-09 11:45:24 +03:00
parent c51ea6b142
commit 2a73aaba4d
3 changed files with 19 additions and 26 deletions
@@ -39,20 +39,22 @@ class TestGroup(
annotations: List<AnnotationModel> = emptyList(),
init: TestClass.() -> Unit
) {
val generationData = TestGenerator.GenerationData(
testsRoot,
suiteTestClassName,
baseTestClassName,
TestClass(annotations).apply(init).testModels,
useJunit4,
)
val (changed, testSourceFilePath) = TestGeneratorImpl.generateAndSave(generationData, dryRun)
val testClass = TestClass(baseTestClassName, suiteTestClassName, useJunit4, annotations).apply(init)
val (changed, testSourceFilePath) = TestGeneratorImpl.generateAndSave(testClass, dryRun)
if (changed) {
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>()
fun model(
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.generators.tests.generator.generators
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(
methodGenerators: List<MethodGenerator<*>>
@@ -14,15 +14,7 @@ abstract class TestGenerator(
protected val methodGenerators: Map<MethodModel.Kind, MethodGenerator<*>> =
methodGenerators.associateBy { it.kind }.withDefault { error("Generator for method with kind $it not found") }
abstract fun generateAndSave(data: GenerationData, dryRun: Boolean): GenerationResult
data class GenerationData(
val baseDir: String,
val suiteTestClassFqName: String,
val baseTestClassFqName: String,
val testClassModels: Collection<TestClassModel>,
val useJunit4: Boolean
)
abstract fun generateAndSave(testClass: TestGroup.TestClass, dryRun: Boolean): GenerationResult
data class GenerationResult(val newFileGenerated: Boolean, val testSourceFilePath: String)
}
@@ -28,14 +28,13 @@ private val METHOD_GENERATORS = listOf(
)
object TestGeneratorImpl : TestGenerator(METHOD_GENERATORS) {
override fun generateAndSave(data: GenerationData, dryRun: Boolean): GenerationResult {
val (baseDir, suiteTestClassFqName, baseTestClassFqName, testClassModels, useJunit4) = data
override fun generateAndSave(testClass: TestGroup.TestClass, dryRun: Boolean): GenerationResult {
val generatorInstance = TestGeneratorImplInstance(
baseDir,
suiteTestClassFqName,
baseTestClassFqName,
testClassModels,
useJunit4,
testClass.baseDir,
testClass.suiteTestClassName,
testClass.baseTestClassName,
testClass.testModels,
testClass.useJunit4,
methodGenerators
)
return generatorInstance.generateAndSave(dryRun)