@@ -14,7 +14,7 @@ import org.utbot.framework.context.NonNullSpeculator
1414import org.utbot.framework.context.TypeReplacer
1515import org.utbot.framework.context.custom.CoverageFilteringConcreteExecutionContext
1616import org.utbot.framework.context.custom.RerunningConcreteExecutionContext
17- import org.utbot.framework.context.custom.allowMocks
17+ import org.utbot.framework.context.custom.useMocks
1818import org.utbot.framework.context.utils.transformJavaFuzzingContext
1919import org.utbot.framework.context.utils.transformValueProvider
2020import org.utbot.framework.plugin.api.BeanDefinitionData
@@ -27,10 +27,11 @@ import org.utbot.framework.plugin.api.util.allSuperTypes
2727import org.utbot.framework.plugin.api.util.id
2828import org.utbot.framework.plugin.api.util.jClass
2929import org.utbot.framework.plugin.api.util.utContext
30+ import org.utbot.fuzzing.spring.FuzzedTypeFlag
3031import org.utbot.fuzzing.spring.addProperties
3132import org.utbot.fuzzing.spring.decorators.replaceTypes
33+ import org.utbot.fuzzing.spring.properties
3234import org.utbot.fuzzing.spring.unit.InjectMockValueProvider
33- import org.utbot.fuzzing.spring.unit.NeverMockFlag
3435import org.utbot.fuzzing.toFuzzerType
3536
3637class SpringApplicationContextImpl (
@@ -43,6 +44,8 @@ class SpringApplicationContextImpl(
4344 private val logger = KotlinLogging .logger {}
4445 }
4546
47+ private object ReplacedFuzzedTypeFlag : FuzzedTypeFlag
48+
4649 override val typeReplacer: TypeReplacer = SpringTypeReplacer (delegateContext.typeReplacer, this )
4750 override val nonNullSpeculator: NonNullSpeculator = SpringNonNullSpeculator (delegateContext.nonNullSpeculator, this )
4851
@@ -71,7 +74,13 @@ class SpringApplicationContextImpl(
7174 return when (springTestType) {
7275 SpringTestType .UNIT_TEST -> delegateConcreteExecutionContext.transformJavaFuzzingContext { fuzzingContext ->
7376 fuzzingContext
74- .allowMocks()
77+ .useMocks { type ->
78+ ReplacedFuzzedTypeFlag !in type.properties &&
79+ fuzzingContext.mockStrategy.eligibleToMock(
80+ classToMock = type.classId,
81+ classUnderTest = fuzzingContext.classUnderTest
82+ )
83+ }
7584 .transformValueProvider { origValueProvider ->
7685 InjectMockValueProvider (
7786 idGenerator = fuzzingContext.idGenerator,
@@ -84,7 +93,7 @@ class SpringApplicationContextImpl(
8493 ?.let { replacement ->
8594 // TODO infer generic type of replacement
8695 toFuzzerType(replacement.jClass, description.typeCache).addProperties(
87- dynamicPropertiesOf(NeverMockFlag .withValue(Unit ))
96+ dynamicPropertiesOf(ReplacedFuzzedTypeFlag .withValue(Unit ))
8897 )
8998 } ? : type
9099 }
0 commit comments