Skip to content

Commit 94af547

Browse files
committed
Avoid when by projectType when choosing CgVariableConstructor
1 parent 2874151 commit 94af547

File tree

6 files changed

+41
-27
lines changed

6 files changed

+41
-27
lines changed

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/generator/SpringCodeGenerator.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,14 @@ import org.utbot.framework.codegen.domain.ProjectType
77
import org.utbot.framework.codegen.domain.RuntimeExceptionTestsBehaviour
88
import org.utbot.framework.codegen.domain.StaticsMocking
99
import org.utbot.framework.codegen.domain.TestFramework
10+
import org.utbot.framework.codegen.domain.context.CgContext
1011
import org.utbot.framework.codegen.domain.models.CgMethodTestSet
1112
import org.utbot.framework.codegen.domain.models.builders.SpringTestClassModelBuilder
1213
import org.utbot.framework.codegen.services.language.CgLanguageAssistant
1314
import org.utbot.framework.codegen.tree.CgSpringIntegrationTestClassConstructor
1415
import org.utbot.framework.codegen.tree.CgSpringUnitTestClassConstructor
16+
import org.utbot.framework.codegen.tree.CgSpringVariableConstructor
17+
import org.utbot.framework.codegen.tree.CgVariableConstructor
1518
import org.utbot.framework.codegen.tree.ututils.UtilClassKind
1619
import org.utbot.framework.plugin.api.ClassId
1720
import org.utbot.framework.plugin.api.CodegenLanguage
@@ -50,7 +53,11 @@ class SpringCodeGenerator(
5053
forceStaticMocking,
5154
generateWarningsForStaticMocking,
5255
codegenLanguage,
53-
cgLanguageAssistant,
56+
cgLanguageAssistant = object : CgLanguageAssistant by cgLanguageAssistant {
57+
override fun getVariableConstructorBy(context: CgContext): CgVariableConstructor =
58+
// TODO decorate original `cgLanguageAssistant.getVariableConstructorBy(context)`
59+
CgSpringVariableConstructor(context)
60+
},
5461
parameterizedTestSource,
5562
runtimeExceptionTestsBehaviour,
5663
hangingTestsTimeout,
Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.utbot.framework.codegen.services.language
22

3-
import org.utbot.framework.codegen.domain.ProjectType
43
import org.utbot.framework.codegen.domain.context.TestClassContext
54
import org.utbot.framework.codegen.domain.context.CgContext
65
import org.utbot.framework.codegen.renderer.CgPrinter
@@ -16,11 +15,10 @@ import org.utbot.framework.codegen.tree.CgMethodConstructor
1615
import org.utbot.framework.codegen.tree.CgStatementConstructor
1716
import org.utbot.framework.codegen.tree.CgStatementConstructorImpl
1817
import org.utbot.framework.codegen.tree.CgVariableConstructor
19-
import org.utbot.framework.codegen.tree.CgSpringVariableConstructor
2018
import org.utbot.framework.plugin.api.ClassId
2119
import org.utbot.framework.plugin.api.CodegenLanguage
2220

23-
abstract class CgLanguageAssistant {
21+
interface CgLanguageAssistant {
2422

2523
companion object {
2624
fun getByCodegenLanguage(language: CodegenLanguage) = when (language) {
@@ -30,31 +28,41 @@ abstract class CgLanguageAssistant {
3028
}
3129
}
3230

33-
open val outerMostTestClassContent: TestClassContext? = null
31+
val outerMostTestClassContent: TestClassContext?
3432

35-
abstract val extension: String
33+
val extension: String
3634

37-
abstract val languageKeywords: Set<String>
35+
val languageKeywords: Set<String>
3836

39-
abstract fun testClassName(
37+
fun testClassName(
4038
testClassCustomName: String?,
4139
testClassPackageName: String,
4240
classUnderTest: ClassId
4341
): Pair<String, String>
4442

45-
open fun getNameGeneratorBy(context: CgContext): CgNameGenerator = CgNameGeneratorImpl(context)
46-
open fun getCallableAccessManagerBy(context: CgContext): CgCallableAccessManager =
47-
CgCallableAccessManagerImpl(context)
48-
open fun getStatementConstructorBy(context: CgContext): CgStatementConstructor = CgStatementConstructorImpl(context)
43+
fun getNameGeneratorBy(context: CgContext): CgNameGenerator
44+
fun getCallableAccessManagerBy(context: CgContext): CgCallableAccessManager
45+
fun getStatementConstructorBy(context: CgContext): CgStatementConstructor
4946

50-
open fun getVariableConstructorBy(context: CgContext): CgVariableConstructor = when (context.projectType) {
51-
ProjectType.Spring -> CgSpringVariableConstructor(context)
52-
else -> CgVariableConstructor(context)
53-
}
47+
fun getVariableConstructorBy(context: CgContext): CgVariableConstructor
48+
49+
fun getMethodConstructorBy(context: CgContext): CgMethodConstructor
50+
fun getCgFieldStateManager(context: CgContext): CgFieldStateManager
51+
52+
fun getLanguageTestFrameworkManager(): LanguageTestFrameworkManager
53+
fun cgRenderer(context: CgRendererContext, printer: CgPrinter): CgAbstractRenderer
54+
}
55+
56+
abstract class AbstractCgLanguageAssistant : CgLanguageAssistant {
57+
override val outerMostTestClassContent: TestClassContext? get() = null
58+
59+
override fun getNameGeneratorBy(context: CgContext): CgNameGenerator = CgNameGeneratorImpl(context)
60+
override fun getCallableAccessManagerBy(context: CgContext): CgCallableAccessManager =
61+
CgCallableAccessManagerImpl(context)
62+
override fun getStatementConstructorBy(context: CgContext): CgStatementConstructor = CgStatementConstructorImpl(context)
5463

55-
open fun getMethodConstructorBy(context: CgContext): CgMethodConstructor = CgMethodConstructor(context)
56-
open fun getCgFieldStateManager(context: CgContext): CgFieldStateManager = CgFieldStateManagerImpl(context)
64+
override fun getVariableConstructorBy(context: CgContext): CgVariableConstructor = CgVariableConstructor(context)
5765

58-
abstract fun getLanguageTestFrameworkManager(): LanguageTestFrameworkManager
59-
abstract fun cgRenderer(context: CgRendererContext, printer: CgPrinter): CgAbstractRenderer
66+
override fun getMethodConstructorBy(context: CgContext): CgMethodConstructor = CgMethodConstructor(context)
67+
override fun getCgFieldStateManager(context: CgContext): CgFieldStateManager = CgFieldStateManagerImpl(context)
6068
}

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/services/language/JavaCgLanguageAssistant.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import org.utbot.framework.plugin.api.ClassId
88
import org.utbot.framework.plugin.api.JVMTestFrameworkManager
99
import org.utbot.framework.plugin.api.utils.testClassNameGenerator
1010

11-
object JavaCgLanguageAssistant : CgLanguageAssistant() {
11+
object JavaCgLanguageAssistant : AbstractCgLanguageAssistant() {
1212

1313
override val extension: String
1414
get() = ".java"

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/services/language/KotlinCgLanguageAssistant.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import org.utbot.framework.plugin.api.ClassId
88
import org.utbot.framework.plugin.api.JVMTestFrameworkManager
99
import org.utbot.framework.plugin.api.utils.testClassNameGenerator
1010

11-
object KotlinCgLanguageAssistant : CgLanguageAssistant() {
11+
object KotlinCgLanguageAssistant : AbstractCgLanguageAssistant() {
1212

1313
override val extension: String
1414
get() = ".kt"

utbot-js/src/main/kotlin/framework/codegen/JsCgLanguageAssistant.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ import org.utbot.framework.codegen.domain.context.TestClassContext
1010
import org.utbot.framework.codegen.renderer.CgAbstractRenderer
1111
import org.utbot.framework.codegen.renderer.CgPrinter
1212
import org.utbot.framework.codegen.renderer.CgRendererContext
13-
import org.utbot.framework.codegen.services.language.CgLanguageAssistant
13+
import org.utbot.framework.codegen.services.language.AbstractCgLanguageAssistant
1414
import org.utbot.framework.plugin.api.ClassId
1515
import org.utbot.framework.plugin.api.utils.testClassNameGenerator
1616

17-
object JsCgLanguageAssistant : CgLanguageAssistant() {
17+
object JsCgLanguageAssistant : AbstractCgLanguageAssistant() {
1818

1919
override val outerMostTestClassContent: TestClassContext = TestClassContext()
2020

utbot-python/src/main/kotlin/org/utbot/python/framework/codegen/PythonCgLanguageAssistant.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import org.utbot.framework.codegen.domain.models.CgVariable
55
import org.utbot.framework.codegen.renderer.CgPrinter
66
import org.utbot.framework.codegen.renderer.CgAbstractRenderer
77
import org.utbot.framework.codegen.renderer.CgRendererContext
8-
import org.utbot.framework.codegen.services.language.CgLanguageAssistant
8+
import org.utbot.framework.codegen.services.language.AbstractCgLanguageAssistant
99
import org.utbot.framework.plugin.api.ClassId
1010
import org.utbot.python.framework.api.python.PythonTree
1111
import org.utbot.python.framework.codegen.model.constructor.name.PythonCgNameGenerator
@@ -16,8 +16,7 @@ import org.utbot.python.framework.codegen.model.constructor.tree.PythonCgVariabl
1616
import org.utbot.python.framework.codegen.model.constructor.visitor.CgPythonRenderer
1717
import org.utbot.python.framework.codegen.model.services.access.PythonCgFieldStateManager
1818

19-
object PythonCgLanguageAssistant : CgLanguageAssistant() {
20-
19+
object PythonCgLanguageAssistant : AbstractCgLanguageAssistant() {
2120
override val extension: String
2221
get() = ".py"
2322

0 commit comments

Comments
 (0)