Skip to content

Commit 94ce47f

Browse files
committed
Add assertNotNull for actual in parameterized test generation
1 parent 715c59b commit 94ce47f

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/Domain.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,8 @@ sealed class TestFramework(
216216

217217
val assertNull by lazy { assertionId("assertNull", objectClassId) }
218218

219+
val assertNotNull by lazy { assertionId("assertNotNull", objectClassId) }
220+
219221
val assertFalse by lazy { assertionId("assertFalse", booleanClassId) }
220222

221223
val assertTrue by lazy { assertionId("assertTrue", booleanClassId) }

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

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1217,7 +1217,10 @@ internal class CgMethodConstructor(val context: CgContext) : CgContextOwner by c
12171217
else -> ifStatement(
12181218
CgEqualTo(expected, nullLiteral()),
12191219
trueBranch = { +testFrameworkManager.assertions[testFramework.assertNull](actual).toStatement() },
1220-
falseBranch = { generateDeepEqualsAssertion(expected, actual) }
1220+
falseBranch = {
1221+
+testFrameworkManager.assertions[testFrameworkManager.assertNotNull](actual).toStatement()
1222+
generateDeepEqualsAssertion(expected, actual)
1223+
}
12211224
)
12221225
}
12231226
}
@@ -1349,10 +1352,7 @@ internal class CgMethodConstructor(val context: CgContext) : CgContextOwner by c
13491352
fun createParameterizedTestMethod(testSet: CgMethodTestSet, dataProviderMethodName: String): CgTestMethod {
13501353
//TODO: orientation on generic execution may be misleading, but what is the alternative?
13511354
//may be a heuristic to select a model with minimal number of internal nulls should be used
1352-
val genericExecution = testSet.executions
1353-
.firstOrNull { it.result is UtExecutionSuccess && (it.result as UtExecutionSuccess).model !is UtNullModel }
1354-
?: testSet.executions
1355-
.firstOrNull { it.result is UtExecutionSuccess } ?: testSet.executions.first()
1355+
val genericExecution = chooseGenericExecution(testSet.executions)
13561356

13571357
val statics = genericExecution.stateBefore.statics
13581358

@@ -1420,6 +1420,13 @@ internal class CgMethodConstructor(val context: CgContext) : CgContextOwner by c
14201420
}
14211421
}
14221422

1423+
private fun chooseGenericExecution(executions: List<UtExecution>): UtExecution {
1424+
return executions
1425+
.firstOrNull { it.result is UtExecutionSuccess && (it.result as UtExecutionSuccess).model !is UtNullModel }
1426+
?: executions
1427+
.firstOrNull { it.result is UtExecutionSuccess } ?: executions.first()
1428+
}
1429+
14231430
private fun createParameterDeclarations(
14241431
testSet: CgMethodTestSet,
14251432
genericExecution: UtExecution,

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/constructor/tree/TestFrameworkManager.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ internal abstract class TestFrameworkManager(val context: CgContext)
6060
val assertDoubleEquals = context.testFramework.assertDoubleEquals
6161

6262
val assertNull = context.testFramework.assertNull
63+
val assertNotNull = context.testFramework.assertNotNull
6364
val assertTrue = context.testFramework.assertTrue
6465
val assertFalse = context.testFramework.assertFalse
6566

0 commit comments

Comments
 (0)