Skip to content

Commit 63ec43a

Browse files
committed
Make GeneratedFieldValueProvider be aware of entity class and not just field declaring class
1 parent 226eaa0 commit 63ec43a

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

utbot-framework/src/main/kotlin/org/utbot/framework/context/spring/SpringIntegrationTestConcreteExecutionContext.kt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,20 @@ class SpringIntegrationTestConcreteExecutionContext(
120120
utContext.classLoader.tryLoadClass(it.name) as Class<out Annotation>?
121121
}
122122

123-
val generatedValueFieldIds =
123+
val generatedValueFields =
124124
relevantRepositories
125-
.flatMap { it.entityClassId.allDeclaredFieldIds }
126-
.filter { fieldId -> generatedValueAnnotationClasses.any { fieldId.jField.isAnnotationPresent(it) } }
127-
logger.info { "Detected @GeneratedValue fields: $generatedValueFieldIds" }
125+
.flatMap { springRepositoryId ->
126+
val entityClassId = springRepositoryId.entityClassId
127+
entityClassId.allDeclaredFieldIds
128+
.filter { fieldId -> generatedValueAnnotationClasses.any { fieldId.jField.isAnnotationPresent(it) } }
129+
.map { entityClassId to it }
130+
}
128131

129-
return ValueProvider.of(generatedValueFieldIds.map { GeneratedFieldValueProvider(idGenerator, it) })
132+
logger.info { "Detected @GeneratedValue fields: $generatedValueFields" }
133+
134+
return ValueProvider.of(generatedValueFields.map { (entityClassId, fieldId) ->
135+
GeneratedFieldValueProvider(idGenerator, entityClassId, fieldId)
136+
})
130137
}
131138

132139
override fun createStateBefore(

utbot-java-fuzzing/src/main/kotlin/org/utbot/fuzzing/spring/GeneratedField.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package org.utbot.fuzzing.spring
33
import mu.KotlinLogging
44
import org.utbot.common.dynamicPropertiesOf
55
import org.utbot.common.withValue
6+
import org.utbot.framework.plugin.api.ClassId
67
import org.utbot.framework.plugin.api.DirectFieldAccessId
78
import org.utbot.framework.plugin.api.FieldId
89
import org.utbot.framework.plugin.api.UtAssembleModel
@@ -27,6 +28,7 @@ import org.utbot.fuzzing.toFuzzerType
2728

2829
class GeneratedFieldValueProvider(
2930
private val idGenerator: IdGenerator<Int>,
31+
private val entityClassId: ClassId,
3032
private val fieldId: FieldId,
3133
) : JavaValueProvider {
3234
companion object {
@@ -40,7 +42,7 @@ class GeneratedFieldValueProvider(
4042
override fun generate(description: FuzzedDescription, type: FuzzedType): Sequence<Seed<FuzzedType, FuzzedValue>> = sequenceOf(
4143
Seed.Recursive(
4244
construct = Routine.Create(listOf(
43-
toFuzzerType(fieldId.declaringClass.jClass, description.typeCache).addProperties(
45+
toFuzzerType(entityClassId.jClass, description.typeCache).addProperties(
4446
dynamicPropertiesOf(
4547
EntityLifecycleStateProperty.withValue(EntityLifecycleState.MANAGED)
4648
)

0 commit comments

Comments
 (0)