Skip to content

Commit 272ebbe

Browse files
committed
Add support for correct generation of inner tests
1 parent e0f7080 commit 272ebbe

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/renderer/CgJavaRenderer.kt

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -226,9 +226,23 @@ internal class CgJavaRenderer(context: CgRendererContext, printer: CgPrinter = C
226226
}
227227

228228
override fun visit(element: CgConstructorCall) {
229-
print("new ")
230-
print(element.executableId.classId.asString())
231-
renderExecutableCallArguments(element)
229+
when(element.type.isInner){
230+
true -> {
231+
// the first argument of inner classes is outer class
232+
print(element.arguments.first().accept(this))
233+
print(".new ")
234+
print(element.executableId.classId.simpleName)
235+
236+
print("(")
237+
element.arguments.drop(1).renderSeparated()
238+
print(")")
239+
}
240+
false -> {
241+
print("new ")
242+
print(element.executableId.classId.asString())
243+
renderExecutableCallArguments(element)
244+
}
245+
}
232246
}
233247

234248
override fun renderRegularImport(regularImport: RegularImport) {

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/tree/CgMethodConstructor.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1331,14 +1331,15 @@ open class CgMethodConstructor(val context: CgContext) : CgContextOwner by conte
13311331
val constructorCall = currentExecutableId as ConstructorId
13321332
val executionResult = currentExecution.result
13331333

1334+
// TODO usvm-sbft: delete require when #141 will be fixed
1335+
require(!constructorCall.classId.isInner) {
1336+
"Inner class ${constructorCall.classId} constructor testing is not supported yet"
1337+
}
1338+
13341339
executionResult
13351340
.onSuccess {
13361341
methodType = SUCCESSFUL
13371342

1338-
require(!constructorCall.classId.isInner) {
1339-
"Inner class ${constructorCall.classId} constructor testing is not supported yet"
1340-
}
1341-
13421343
actual = newVar(constructorCall.classId, "actual") {
13431344
constructorCall(*methodArguments.toTypedArray())
13441345
}

0 commit comments

Comments
 (0)