1
1
package org.utbot.framework.codegen.tree
2
2
3
+ import com.jetbrains.rd.util.firstOrNull
3
4
import org.utbot.framework.codegen.domain.context.CgContext
4
5
import org.utbot.framework.codegen.domain.models.CgValue
6
+ import org.utbot.framework.codegen.domain.models.CgVariable
7
+ import org.utbot.framework.plugin.api.UtCompositeModel
5
8
import org.utbot.framework.plugin.api.UtModel
9
+ import org.utbot.framework.plugin.api.isMockModel
6
10
7
11
class CgSpringVariableConstructor (context : CgContext ) : CgVariableConstructor(context) {
12
+
13
+ private val mockFrameworkManager = CgComponents .getMockFrameworkManagerBy(context)
14
+
8
15
override fun getOrCreateVariable (model : UtModel , name : String? ): CgValue {
9
- // val existingValue = fromListToVariableList[model]
10
- val existingValue = fromListToVariableList.find { it.first.contains(model) }?.second
16
+ val alreadyCreatedMock = mockedModelsVariables
17
+ .filter { it.key.contains(model) }
18
+ .firstOrNull()
19
+ ?.value
20
+
21
+ val alreadyCreatedInjectMocks = injectingMocksModelsVariables
22
+ .filter { it.key.contains(model) }
23
+ .firstOrNull()
24
+ ?.value
25
+
26
+ if (alreadyCreatedInjectMocks != null ) {
27
+ val compModel = model as UtCompositeModel
28
+ for (mock in compModel.fields.values) {
29
+ getOrCreateVariable(mock)
30
+ }
31
+ }
32
+
33
+ if (alreadyCreatedMock != null ) {
34
+ if (model.isMockModel()) {
35
+ mockFrameworkManager.createMockForVariable(
36
+ model as UtCompositeModel ,
37
+ alreadyCreatedMock as CgVariable ,
38
+ )
39
+ }
40
+
41
+ return alreadyCreatedMock
42
+ }
11
43
12
- return existingValue ? : super .getOrCreateVariable(model, name)
44
+ return super .getOrCreateVariable(model, name)
13
45
}
14
46
15
47
companion object {
16
- // val fromListToVariableList : MutableMap<List<UtModel>, CgValue> = mutableMapOf()
17
- val fromListToVariableList : MutableList < Pair < List <UtModel >, CgValue >> = mutableListOf ()
48
+ val mockedModelsVariables : MutableMap <List <UtModel >, CgValue > = mutableMapOf ()
49
+ val injectingMocksModelsVariables : MutableMap < List <UtModel >, CgValue > = mutableMapOf ()
18
50
}
19
51
}
0 commit comments