diff --git a/utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api/Api.kt b/utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api/Api.kt index e75910713b..a8fe3e6107 100644 --- a/utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api/Api.kt +++ b/utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api/Api.kt @@ -1365,6 +1365,11 @@ enum class MockStrategyApi( companion object : CodeGenerationSettingBox { override val defaultItem = OTHER_PACKAGES override val allItems: List = values().toList() + + // Mock strategy gains more meaning in Spring Projects. + // We use OTHER_CLASSES strategy as default one in `No configuration` mode + // and as unique acceptable in other modes (combined with type replacement). + val springDefaultItem = OTHER_CLASSES } } diff --git a/utbot-framework-test/src/test/kotlin/org/utbot/framework/plugin/api/MockStrategyApiTest.kt b/utbot-framework-test/src/test/kotlin/org/utbot/framework/plugin/api/MockStrategyApiTest.kt index 4ce43e1a95..21e3730342 100644 --- a/utbot-framework-test/src/test/kotlin/org/utbot/framework/plugin/api/MockStrategyApiTest.kt +++ b/utbot-framework-test/src/test/kotlin/org/utbot/framework/plugin/api/MockStrategyApiTest.kt @@ -31,6 +31,16 @@ internal class MockStrategyApiTest { ) } + @Test + fun ensureDefaultStrategyIsOtherClassesInSpringApplication() { + assertEquals( + MockStrategyApi.OTHER_CLASSES, + MockStrategyApi.springDefaultItem, + "Expecting that ${MockStrategyApi.OTHER_CLASSES} is the default policy for Mocks in Spring application" + + "but ${MockStrategyApi.springDefaultItem} found" + ) + } + @Test fun testLabelToEnum() { assertEquals( diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt index d1fdf4a429..aad4740ba6 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt @@ -712,7 +712,11 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m cbSpecifyTestPackage.isEnabled = model.srcClasses.all { cl -> cl.packageName.isNotEmpty() } val settings = model.project.service() - mockStrategies.item = settings.mockStrategy + + mockStrategies.item = when (model.projectType) { + ProjectType.Spring -> MockStrategyApi.springDefaultItem + else -> settings.mockStrategy + } staticsMocking.isSelected = settings.staticsMocking == MockitoStaticMocking parametrizedTestSources.isSelected = settings.parametrizedTestSource == ParametrizedTestSource.PARAMETRIZE @@ -1025,13 +1029,14 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m springConfig.addActionListener { _ -> val isSpringConfigSelected = springConfig.item != NO_SPRING_CONFIGURATION_OPTION if (isSpringConfigSelected) { - // Here mock strategy gains more meaning in Spring Projects. - // We use OTHER_CLASSES strategy combined with type replacement being enabled. - mockStrategies.item = MockStrategyApi.OTHER_CLASSES + mockStrategies.item = MockStrategyApi.springDefaultItem mockStrategies.isEnabled = false updateMockStrategyListForConfigGuidedTypeReplacements() } else { - mockStrategies.item = MockStrategyApi.defaultItem + mockStrategies.item = when (model.projectType) { + ProjectType.Spring -> MockStrategyApi.springDefaultItem + else -> MockStrategyApi.defaultItem + } mockStrategies.isEnabled = true updateMockStrategyList() }