From 1de5cf92f5f209849786779f8c5f40e943171ef6 Mon Sep 17 00:00:00 2001 From: IlyaMuravjov <71839386+IlyaMuravjov@users.noreply.github.com> Date: Fri, 21 Jul 2023 11:34:20 +0300 Subject: [PATCH] Make Spring integration tests use `AbstractsValueProvider` (#2433) --- .../spring/SpringIntegrationTestConcreteExecutionContext.kt | 3 ++- .../src/main/kotlin/org/utbot/fuzzing/JavaLanguage.kt | 5 +---- .../src/main/kotlin/org/utbot/fuzzing/providers/Objects.kt | 6 ++++++ 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/utbot-framework/src/main/kotlin/org/utbot/framework/context/spring/SpringIntegrationTestConcreteExecutionContext.kt b/utbot-framework/src/main/kotlin/org/utbot/framework/context/spring/SpringIntegrationTestConcreteExecutionContext.kt index 87b7387e03..e716b286fe 100644 --- a/utbot-framework/src/main/kotlin/org/utbot/framework/context/spring/SpringIntegrationTestConcreteExecutionContext.kt +++ b/utbot-framework/src/main/kotlin/org/utbot/framework/context/spring/SpringIntegrationTestConcreteExecutionContext.kt @@ -17,6 +17,7 @@ import org.utbot.fuzzing.JavaValueProvider import org.utbot.fuzzing.ValueProvider import org.utbot.fuzzing.providers.FieldValueProvider import org.utbot.fuzzing.providers.ObjectValueProvider +import org.utbot.fuzzing.providers.anyObjectValueProvider import org.utbot.fuzzing.spring.SavedEntityValueProvider import org.utbot.fuzzing.spring.SpringBeanValueProvider import org.utbot.instrumentation.ConcreteExecutor @@ -85,7 +86,7 @@ class SpringIntegrationTestConcreteExecutionContext( springApplicationContext.getBeansAssignableTo(classId).map { it.beanName } }, relevantRepositories = relevantRepositories - ).withFallback(ObjectValueProvider(idGenerator)) + ).withFallback(anyObjectValueProvider(idGenerator)) return delegateContext.tryCreateValueProvider(concreteExecutor, classUnderTest, idGenerator) .except { p -> p is ObjectValueProvider } diff --git a/utbot-java-fuzzing/src/main/kotlin/org/utbot/fuzzing/JavaLanguage.kt b/utbot-java-fuzzing/src/main/kotlin/org/utbot/fuzzing/JavaLanguage.kt index b55e567c68..f6cc458787 100644 --- a/utbot-java-fuzzing/src/main/kotlin/org/utbot/fuzzing/JavaLanguage.kt +++ b/utbot-java-fuzzing/src/main/kotlin/org/utbot/fuzzing/JavaLanguage.kt @@ -1,7 +1,6 @@ package org.utbot.fuzzing import mu.KotlinLogging -import org.utbot.framework.UtSettings import org.utbot.framework.plugin.api.ClassId import org.utbot.framework.plugin.api.ExecutableId import org.utbot.framework.plugin.api.Instruction @@ -43,9 +42,7 @@ fun defaultValueProviders(idGenerator: IdentityPreservingIdGenerator) = lis FloatValueProvider, StringValueProvider, NumberValueProvider, - ObjectValueProvider(idGenerator).letIf(UtSettings.fuzzingImplementationOfAbstractClasses) { ovp -> - ovp.withFallback(AbstractsObjectValueProvider(idGenerator)) - }, + anyObjectValueProvider(idGenerator), ArrayValueProvider(idGenerator), EnumValueProvider(idGenerator), ListSetValueProvider(idGenerator), diff --git a/utbot-java-fuzzing/src/main/kotlin/org/utbot/fuzzing/providers/Objects.kt b/utbot-java-fuzzing/src/main/kotlin/org/utbot/fuzzing/providers/Objects.kt index 68ab56e678..5f1474f5b5 100644 --- a/utbot-java-fuzzing/src/main/kotlin/org/utbot/fuzzing/providers/Objects.kt +++ b/utbot-java-fuzzing/src/main/kotlin/org/utbot/fuzzing/providers/Objects.kt @@ -1,6 +1,7 @@ package org.utbot.fuzzing.providers import mu.KotlinLogging +import org.utbot.framework.UtSettings import org.utbot.framework.plugin.api.* import org.utbot.framework.plugin.api.util.* import org.utbot.fuzzer.* @@ -30,6 +31,11 @@ private fun isIgnored(type: ClassId): Boolean { || (type.isInner && !type.isStatic) } +fun anyObjectValueProvider(idGenerator: IdentityPreservingIdGenerator) = + ObjectValueProvider(idGenerator).letIf(UtSettings.fuzzingImplementationOfAbstractClasses) { ovp -> + ovp.withFallback(AbstractsObjectValueProvider(idGenerator)) + } + class ObjectValueProvider( val idGenerator: IdGenerator, ) : ValueProvider {