[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(),
|
||||
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(
|
||||
|
||||
+2
-10
@@ -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)
|
||||
}
|
||||
|
||||
+6
-7
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user