Skip to content

Commit db0c21a

Browse files
Set MockStrategy default value properly in Spring projects (#2093)
* Set MockStrategy default value properly in Spring projects * Test added
1 parent 15cb259 commit db0c21a

File tree

3 files changed

+25
-5
lines changed

3 files changed

+25
-5
lines changed

utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api/Api.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1365,6 +1365,11 @@ enum class MockStrategyApi(
13651365
companion object : CodeGenerationSettingBox {
13661366
override val defaultItem = OTHER_PACKAGES
13671367
override val allItems: List<MockStrategyApi> = values().toList()
1368+
1369+
// Mock strategy gains more meaning in Spring Projects.
1370+
// We use OTHER_CLASSES strategy as default one in `No configuration` mode
1371+
// and as unique acceptable in other modes (combined with type replacement).
1372+
val springDefaultItem = OTHER_CLASSES
13681373
}
13691374
}
13701375

utbot-framework-test/src/test/kotlin/org/utbot/framework/plugin/api/MockStrategyApiTest.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,16 @@ internal class MockStrategyApiTest {
3131
)
3232
}
3333

34+
@Test
35+
fun ensureDefaultStrategyIsOtherClassesInSpringApplication() {
36+
assertEquals(
37+
MockStrategyApi.OTHER_CLASSES,
38+
MockStrategyApi.springDefaultItem,
39+
"Expecting that ${MockStrategyApi.OTHER_CLASSES} is the default policy for Mocks in Spring application" +
40+
"but ${MockStrategyApi.springDefaultItem} found"
41+
)
42+
}
43+
3444
@Test
3545
fun testLabelToEnum() {
3646
assertEquals(

utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -713,7 +713,11 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
713713
cbSpecifyTestPackage.isEnabled = model.srcClasses.all { cl -> cl.packageName.isNotEmpty() }
714714

715715
val settings = model.project.service<Settings>()
716-
mockStrategies.item = settings.mockStrategy
716+
717+
mockStrategies.item = when (model.projectType) {
718+
ProjectType.Spring -> MockStrategyApi.springDefaultItem
719+
else -> settings.mockStrategy
720+
}
717721
staticsMocking.isSelected = settings.staticsMocking == MockitoStaticMocking
718722
parametrizedTestSources.isSelected = settings.parametrizedTestSource == ParametrizedTestSource.PARAMETRIZE
719723

@@ -1026,13 +1030,14 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
10261030
springConfig.addActionListener { _ ->
10271031
val isSpringConfigSelected = springConfig.item.getItem() != NO_SPRING_CONFIGURATION_OPTION
10281032
if (isSpringConfigSelected) {
1029-
// Here mock strategy gains more meaning in Spring Projects.
1030-
// We use OTHER_CLASSES strategy combined with type replacement being enabled.
1031-
mockStrategies.item = MockStrategyApi.OTHER_CLASSES
1033+
mockStrategies.item = MockStrategyApi.springDefaultItem
10321034
mockStrategies.isEnabled = false
10331035
updateMockStrategyListForConfigGuidedTypeReplacements()
10341036
} else {
1035-
mockStrategies.item = MockStrategyApi.defaultItem
1037+
mockStrategies.item = when (model.projectType) {
1038+
ProjectType.Spring -> MockStrategyApi.springDefaultItem
1039+
else -> MockStrategyApi.defaultItem
1040+
}
10361041
mockStrategies.isEnabled = true
10371042
updateMockStrategyList()
10381043
}

0 commit comments

Comments
 (0)