From ec3da0b6f67abd10b01df72e639a973bf6d7ba75 Mon Sep 17 00:00:00 2001 From: Kirill Shishin Date: Tue, 19 Dec 2023 20:40:48 +0300 Subject: [PATCH 1/3] Add saving Spring related settings selected by User on action dialog --- .../org/utbot/framework/plugin/api/Api.kt | 17 +++++ .../plugin/models/GenerateTestsModel.kt | 1 + .../intellij/plugin/settings/Settings.kt | 2 + .../plugin/ui/GenerateTestsDialogWindow.kt | 63 ++++++++++++------- .../plugin/settings/CommonSettings.kt | 12 ++++ 5 files changed, 72 insertions(+), 23 deletions(-) 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 6f09839f51..0f50084b28 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 @@ -1525,6 +1525,19 @@ enum class SpringTestType( } } +enum class SpringProfileNames( + override val id: String, + override val displayName: String, + override val description: String, +) : CodeGenerationSettingItem { + DEFAULT_SPRING_PROFILE_NAME("default", "default", "Generate tests with default profile"); + + override fun toString() = id + + companion object : CodeGenerationSettingTextField { + override val defaultItem = DEFAULT_SPRING_PROFILE_NAME + } +} /** * Describes information about beans obtained from Spring analysis process. * @@ -1568,6 +1581,10 @@ interface CodeGenerationSettingBox { fun labels(): Array = allItems.map { it.displayName }.toTypedArray() } +interface CodeGenerationSettingTextField { + val defaultItem: CodeGenerationSettingItem +} + enum class MockStrategyApi( override val id: String, override val displayName: String, diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/GenerateTestsModel.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/GenerateTestsModel.kt index 3c23f56b51..cde19be4c4 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/GenerateTestsModel.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/GenerateTestsModel.kt @@ -87,6 +87,7 @@ class GenerateTestsModel( lateinit var springSettings: SpringSettings lateinit var springTestType: SpringTestType + lateinit var springProfileNames: String val conflictTriggers: ConflictTriggers = ConflictTriggers() val preClasspathCollectionPromises: MutableList> = mutableListOf() diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt index 4de8b70089..84da9c07e1 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt @@ -25,6 +25,8 @@ private fun fromGenerateTestsModel(model: GenerateTestsModel): Settings.State { parametrizedTestSource = model.parametrizedTestSource, classesToMockAlways = model.chosenClassesToMockAlways.mapTo(mutableSetOf()) { it.name }.toTypedArray(), springTestType = model.springTestType, + springConfig = model.springSettings, + springProfileNames = model.springProfileNames, fuzzingValue = model.fuzzingValue, runGeneratedTestsWithCoverage = model.runGeneratedTestsWithCoverage, commentStyle = model.commentStyle, 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 c5d71d36f0..344195c945 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 @@ -99,6 +99,7 @@ import org.utbot.framework.plugin.api.CodegenLanguage import org.utbot.framework.plugin.api.CodeGenerationSettingItem import org.utbot.framework.plugin.api.SpringConfiguration import org.utbot.framework.plugin.api.SpringTestType.* +import org.utbot.framework.plugin.api.SpringProfileNames import org.utbot.framework.plugin.api.utils.MOCKITO_EXTENSIONS_FILE_CONTENT import org.utbot.framework.plugin.api.utils.MOCKITO_EXTENSIONS_FOLDER import org.utbot.framework.plugin.api.utils.MOCKITO_MOCKMAKER_FILE_NAME @@ -166,7 +167,6 @@ private const val SAME_PACKAGE_LABEL = "same as for sources" private const val WILL_BE_INSTALLED_LABEL = " (will be installed)" private const val NO_SPRING_CONFIGURATION_OPTION = "No configuration" -private const val DEFAULT_SPRING_PROFILE_NAME = "default" private const val ACTION_GENERATE = "Generate Tests" private const val ACTION_GENERATE_AND_RUN = "Generate and Run" @@ -202,7 +202,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m private val springTestType = createComboBox(SpringTestType.values()).also { it.setMinimumAndPreferredWidth(300) } private val springConfig = createComboBoxWithSeparatorsForSpringConfigs(shortenConfigurationNames()) - private val profileNames = JBTextField(23).apply { emptyText.text = DEFAULT_SPRING_PROFILE_NAME } + private val springProfileNames = JBTextField(23).apply { emptyText.text = SpringProfileNames.defaultItem.toString() } private val timeoutSpinner = JBIntSpinner(TimeUnit.MILLISECONDS.toSeconds(model.timeout).toInt(), 1, Int.MAX_VALUE, 1).also { @@ -245,6 +245,11 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m ) } + private fun shortenConfigurationNameByFullname(fullname: String): String? { + val allShortenConfigurationNames = shortenConfigurationNames().flatMap { it.second } + return allShortenConfigurationNames.firstOrNull { fullname.endsWith(it) } + } + private fun createComboBox(values: Array) : ComboBox { val comboBox = object:ComboBox(DefaultComboBoxModel(values)) { var maxWidth = 0 @@ -428,7 +433,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m ComboBoxPredicate(springConfig) { isSpringConfigSelected() && !isXmlSpringConfigUsed() } ) row("Active profile(s):") { - cell(profileNames) + cell(springProfileNames) contextHelp( "One or several comma-separated names.
" + "If all names are incorrect, default profile is used" @@ -736,12 +741,13 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m PresentSpringSettings( configuration = config, - profiles = parseProfileExpression(profileNames.text, DEFAULT_SPRING_PROFILE_NAME).toList() + profiles = parseProfileExpression(springProfileNames.text, SpringProfileNames.defaultItem.toString()).toList() ) } } model.springTestType = springTestType.item + model.springProfileNames = springProfileNames.text val settings = model.project.service() with(settings) { @@ -883,21 +889,23 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m if (settings.fuzzingValue == 0.0) 0.0 else settings.fuzzingValue.coerceAtLeast(0.3) } + springConfig.item = when (settings.springConfig) { + is AbsentSpringSettings -> NO_SPRING_CONFIGURATION_OPTION + is PresentSpringSettings -> shortenConfigurationNameByFullname((settings.springConfig as PresentSpringSettings).configuration.fullDisplayName) + ?: NO_SPRING_CONFIGURATION_OPTION + } } else -> {} } - mockStrategies.item = when (model.projectType) { - ProjectType.Spring -> MockStrategyApi.springDefaultItem + mockStrategies.item = when (model.projectType == ProjectType.Spring && springConfig.item != NO_SPRING_CONFIGURATION_OPTION) { + true -> MockStrategyApi.springDefaultItem else -> settings.mockStrategy } staticsMocking.isSelected = settings.staticsMocking == MockitoStaticMocking parametrizedTestSources.isSelected = (settings.parametrizedTestSource == ParametrizedTestSource.PARAMETRIZE && model.projectType == ProjectType.PureJvm) - mockStrategies.isEnabled = true - staticsMocking.isEnabled = mockStrategies.item != MockStrategyApi.NO_MOCKS - codegenLanguages.item = model.codegenLanguage val installedTestFramework = TestFramework.allItems.singleOrNull { it.isInstalled } @@ -914,8 +922,10 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m updateParametrizationEnabled() } ProjectType.Spring -> { + springProfileNames.text = settings.springProfileNames springTestType.item = if (isSpringConfigSelected()) settings.springTestType else SpringTestType.defaultItem + updateMockStrategy(springTestType.item) updateSpringSettings() updateTestFrameworksList(springTestType.item) } @@ -923,6 +933,8 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m ProjectType.JavaScript -> { } } + mockStrategies.isEnabled = !isSpringConfigSelected() + updateStaticMockEnabled() updateMockStrategyList() itemsToHelpTooltip.forEach { (box, tooltip) -> @@ -1192,7 +1204,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m springTestType.item = SpringTestType.defaultItem - profileNames.text = "" + springProfileNames.text = "" } if (isSpringConfigSelected() && springTestType.item == UNIT_TEST) { @@ -1208,17 +1220,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m val item = comboBox.item as SpringTestType updateTestFrameworksList(item) - - when (item) { - UNIT_TEST -> { - mockStrategies.item = MockStrategyApi.springDefaultItem - staticsMocking.isSelected = true - } - INTEGRATION_TEST -> { - mockStrategies.item = MockStrategyApi.springIntegrationTestItem - staticsMocking.isSelected = false - } - } + updateMockStrategy(item) updateMockStrategyList() updateControlsEnabledStatus() } @@ -1232,6 +1234,21 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m } } + private fun updateMockStrategy(springTestType: SpringTestType){ + when (springTestType) { + UNIT_TEST -> { + if(springConfig.item != NO_SPRING_CONFIGURATION_OPTION){ + mockStrategies.item = MockStrategyApi.springDefaultItem + staticsMocking.isSelected = true + } + } + INTEGRATION_TEST -> { + mockStrategies.item = MockStrategyApi.springIntegrationTestItem + staticsMocking.isSelected = false + } + } + } + private lateinit var currentFrameworkItem: TestFramework private fun updateTestFrameworksList(parametrizedTestSource: ParametrizedTestSource) { @@ -1384,10 +1401,10 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m if (isSpringConfigSelected()) { mockStrategies.isEnabled = false - profileNames.isEnabled = true + springProfileNames.isEnabled = true springTestType.isEnabled = !isXmlSpringConfigUsed() } else { - profileNames.isEnabled = false + springProfileNames.isEnabled = false springTestType.isEnabled = false } } diff --git a/utbot-ui-commons/src/main/kotlin/org/utbot/intellij/plugin/settings/CommonSettings.kt b/utbot-ui-commons/src/main/kotlin/org/utbot/intellij/plugin/settings/CommonSettings.kt index 2fc63f8e77..6ab61e0846 100644 --- a/utbot-ui-commons/src/main/kotlin/org/utbot/intellij/plugin/settings/CommonSettings.kt +++ b/utbot-ui-commons/src/main/kotlin/org/utbot/intellij/plugin/settings/CommonSettings.kt @@ -40,6 +40,8 @@ import org.utbot.framework.SummariesGenerationType import org.utbot.framework.codegen.domain.UnknownTestFramework import org.utbot.framework.plugin.api.SpringTestType import org.utbot.framework.plugin.api.isSummarizationCompatible +import org.utbot.framework.plugin.api.SpringSettings +import org.utbot.framework.plugin.api.SpringProfileNames @State( name = "UtBotSettings", @@ -66,6 +68,8 @@ class Settings(val project: Project) : PersistentStateComponent var parametrizedTestSource: ParametrizedTestSource = ParametrizedTestSource.defaultItem, var classesToMockAlways: Array = Mocker.defaultSuperClassesToMockAlwaysNames.toTypedArray(), var springTestType: SpringTestType = SpringTestType.defaultItem, + var springConfig: SpringSettings = SpringSettings.AbsentSpringSettings, + var springProfileNames: String = SpringProfileNames.defaultItem.toString(), var fuzzingValue: Double = 0.05, var runGeneratedTestsWithCoverage: Boolean = false, var commentStyle: JavaDocCommentStyle = JavaDocCommentStyle.defaultItem, @@ -96,6 +100,8 @@ class Settings(val project: Project) : PersistentStateComponent if (parametrizedTestSource != other.parametrizedTestSource) return false if (!classesToMockAlways.contentEquals(other.classesToMockAlways)) return false if (springTestType != other.springTestType) return false + if (springConfig != other.springConfig) return false + if (springProfileNames != other.springProfileNames) return false if (fuzzingValue != other.fuzzingValue) return false if (runGeneratedTestsWithCoverage != other.runGeneratedTestsWithCoverage) return false if (commentStyle != other.commentStyle) return false @@ -120,6 +126,8 @@ class Settings(val project: Project) : PersistentStateComponent result = 31 * result + parametrizedTestSource.hashCode() result = 31 * result + classesToMockAlways.contentHashCode() result = 31 * result + springTestType.hashCode() + result = 31 * result + springConfig.hashCode() + result = 31 * result + springProfileNames.hashCode() result = 31 * result + fuzzingValue.hashCode() result = 31 * result + if (runGeneratedTestsWithCoverage) 1 else 0 result = 31 * result + summariesGenerationType.hashCode() @@ -170,6 +178,10 @@ class Settings(val project: Project) : PersistentStateComponent val springTestType: SpringTestType get() = state.springTestType + val springConfig: SpringSettings get() = state.springConfig + + val springProfileNames: String get() = state.springProfileNames + val javaDocCommentStyle: JavaDocCommentStyle get() = state.commentStyle var fuzzingValue: Double From e60a0588a19e3f42feda3f63732d7925ce36252a Mon Sep 17 00:00:00 2001 From: Kirill Shishin Date: Thu, 21 Dec 2023 13:34:16 +0300 Subject: [PATCH 2/3] Refactoring --- .../org/utbot/framework/plugin/api/Api.kt | 29 +++++++++++++------ .../plugin/models/GenerateTestsModel.kt | 1 + .../intellij/plugin/settings/Settings.kt | 2 +- .../plugin/ui/GenerateTestsDialogWindow.kt | 12 +++----- .../plugin/settings/CommonSettings.kt | 8 ++--- 5 files changed, 30 insertions(+), 22 deletions(-) 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 0f50084b28..6d48c47b00 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 @@ -1525,19 +1525,30 @@ enum class SpringTestType( } } -enum class SpringProfileNames( - override val id: String, - override val displayName: String, - override val description: String, -) : CodeGenerationSettingItem { - DEFAULT_SPRING_PROFILE_NAME("default", "default", "Generate tests with default profile"); +class SpringProfileNames( + override val defaultItem: String, +) : CodeGenerationSettingTextField { - override fun toString() = id + override fun toString() = defaultItem + + companion object : CodeGenerationSettingTextField { + override val defaultItem = "default"; + } +} + +const val NO_SPRING_CONFIGURATION_OPTION = "No configuration"; + +class SpringConfig( + override val defaultItem: String, +) : CodeGenerationSettingTextField { + + override fun toString() = defaultItem companion object : CodeGenerationSettingTextField { - override val defaultItem = DEFAULT_SPRING_PROFILE_NAME + override val defaultItem = NO_SPRING_CONFIGURATION_OPTION; } } + /** * Describes information about beans obtained from Spring analysis process. * @@ -1582,7 +1593,7 @@ interface CodeGenerationSettingBox { } interface CodeGenerationSettingTextField { - val defaultItem: CodeGenerationSettingItem + val defaultItem: String } enum class MockStrategyApi( diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/GenerateTestsModel.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/GenerateTestsModel.kt index cde19be4c4..2ba4bff9bd 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/GenerateTestsModel.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/GenerateTestsModel.kt @@ -87,6 +87,7 @@ class GenerateTestsModel( lateinit var springSettings: SpringSettings lateinit var springTestType: SpringTestType + lateinit var springConfig: String lateinit var springProfileNames: String val conflictTriggers: ConflictTriggers = ConflictTriggers() diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt index 84da9c07e1..b246da7cb8 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt @@ -25,7 +25,7 @@ private fun fromGenerateTestsModel(model: GenerateTestsModel): Settings.State { parametrizedTestSource = model.parametrizedTestSource, classesToMockAlways = model.chosenClassesToMockAlways.mapTo(mutableSetOf()) { it.name }.toTypedArray(), springTestType = model.springTestType, - springConfig = model.springSettings, + springConfig = model.springConfig, springProfileNames = model.springProfileNames, fuzzingValue = model.fuzzingValue, runGeneratedTestsWithCoverage = model.runGeneratedTestsWithCoverage, 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 344195c945..8341de1570 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 @@ -103,6 +103,7 @@ import org.utbot.framework.plugin.api.SpringProfileNames import org.utbot.framework.plugin.api.utils.MOCKITO_EXTENSIONS_FILE_CONTENT import org.utbot.framework.plugin.api.utils.MOCKITO_EXTENSIONS_FOLDER import org.utbot.framework.plugin.api.utils.MOCKITO_MOCKMAKER_FILE_NAME +import org.utbot.framework.plugin.api.NO_SPRING_CONFIGURATION_OPTION import org.utbot.framework.util.Conflict import org.utbot.intellij.plugin.models.GenerateTestsModel import org.utbot.intellij.plugin.models.id @@ -166,8 +167,6 @@ private const val SAME_PACKAGE_LABEL = "same as for sources" private const val WILL_BE_INSTALLED_LABEL = " (will be installed)" -private const val NO_SPRING_CONFIGURATION_OPTION = "No configuration" - private const val ACTION_GENERATE = "Generate Tests" private const val ACTION_GENERATE_AND_RUN = "Generate and Run" @@ -741,12 +740,13 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m PresentSpringSettings( configuration = config, - profiles = parseProfileExpression(springProfileNames.text, SpringProfileNames.defaultItem.toString()).toList() + profiles = parseProfileExpression(springProfileNames.text, SpringProfileNames.defaultItem).toList() ) } } model.springTestType = springTestType.item + model.springConfig = springConfig.item.toString() model.springProfileNames = springProfileNames.text val settings = model.project.service() @@ -889,11 +889,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m if (settings.fuzzingValue == 0.0) 0.0 else settings.fuzzingValue.coerceAtLeast(0.3) } - springConfig.item = when (settings.springConfig) { - is AbsentSpringSettings -> NO_SPRING_CONFIGURATION_OPTION - is PresentSpringSettings -> shortenConfigurationNameByFullname((settings.springConfig as PresentSpringSettings).configuration.fullDisplayName) - ?: NO_SPRING_CONFIGURATION_OPTION - } + springConfig.item = settings.springConfig } else -> {} } diff --git a/utbot-ui-commons/src/main/kotlin/org/utbot/intellij/plugin/settings/CommonSettings.kt b/utbot-ui-commons/src/main/kotlin/org/utbot/intellij/plugin/settings/CommonSettings.kt index 6ab61e0846..e75e865f35 100644 --- a/utbot-ui-commons/src/main/kotlin/org/utbot/intellij/plugin/settings/CommonSettings.kt +++ b/utbot-ui-commons/src/main/kotlin/org/utbot/intellij/plugin/settings/CommonSettings.kt @@ -40,8 +40,8 @@ import org.utbot.framework.SummariesGenerationType import org.utbot.framework.codegen.domain.UnknownTestFramework import org.utbot.framework.plugin.api.SpringTestType import org.utbot.framework.plugin.api.isSummarizationCompatible -import org.utbot.framework.plugin.api.SpringSettings import org.utbot.framework.plugin.api.SpringProfileNames +import org.utbot.framework.plugin.api.SpringConfig @State( name = "UtBotSettings", @@ -68,8 +68,8 @@ class Settings(val project: Project) : PersistentStateComponent var parametrizedTestSource: ParametrizedTestSource = ParametrizedTestSource.defaultItem, var classesToMockAlways: Array = Mocker.defaultSuperClassesToMockAlwaysNames.toTypedArray(), var springTestType: SpringTestType = SpringTestType.defaultItem, - var springConfig: SpringSettings = SpringSettings.AbsentSpringSettings, - var springProfileNames: String = SpringProfileNames.defaultItem.toString(), + var springConfig: String = SpringConfig.defaultItem, + var springProfileNames: String = SpringProfileNames.defaultItem, var fuzzingValue: Double = 0.05, var runGeneratedTestsWithCoverage: Boolean = false, var commentStyle: JavaDocCommentStyle = JavaDocCommentStyle.defaultItem, @@ -178,7 +178,7 @@ class Settings(val project: Project) : PersistentStateComponent val springTestType: SpringTestType get() = state.springTestType - val springConfig: SpringSettings get() = state.springConfig + val springConfig: String get() = state.springConfig val springProfileNames: String get() = state.springProfileNames From 2d8e1efe857374e1b09cf7d373370470c900a93a Mon Sep 17 00:00:00 2001 From: Egor Kulikov Date: Thu, 21 Dec 2023 14:03:59 +0300 Subject: [PATCH 3/3] Little code cleanup --- .../kotlin/org/utbot/framework/plugin/api/Api.kt | 6 +++--- .../intellij/plugin/ui/GenerateTestsDialogWindow.kt | 13 +++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) 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 6d48c47b00..ec289f2b23 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 @@ -1532,11 +1532,11 @@ class SpringProfileNames( override fun toString() = defaultItem companion object : CodeGenerationSettingTextField { - override val defaultItem = "default"; + override val defaultItem = "default" } } -const val NO_SPRING_CONFIGURATION_OPTION = "No configuration"; +const val NO_SPRING_CONFIGURATION_OPTION = "No configuration" class SpringConfig( override val defaultItem: String, @@ -1545,7 +1545,7 @@ class SpringConfig( override fun toString() = defaultItem companion object : CodeGenerationSettingTextField { - override val defaultItem = NO_SPRING_CONFIGURATION_OPTION; + override val defaultItem = NO_SPRING_CONFIGURATION_OPTION } } 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 8341de1570..760046ef60 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 @@ -201,7 +201,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m private val springTestType = createComboBox(SpringTestType.values()).also { it.setMinimumAndPreferredWidth(300) } private val springConfig = createComboBoxWithSeparatorsForSpringConfigs(shortenConfigurationNames()) - private val springProfileNames = JBTextField(23).apply { emptyText.text = SpringProfileNames.defaultItem.toString() } + private val springProfileNames = JBTextField(23).apply { emptyText.text = SpringProfileNames.defaultItem } private val timeoutSpinner = JBIntSpinner(TimeUnit.MILLISECONDS.toSeconds(model.timeout).toInt(), 1, Int.MAX_VALUE, 1).also { @@ -894,8 +894,9 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m else -> {} } - mockStrategies.item = when (model.projectType == ProjectType.Spring && springConfig.item != NO_SPRING_CONFIGURATION_OPTION) { - true -> MockStrategyApi.springDefaultItem + mockStrategies.item = when (model.projectType) { + ProjectType.Spring -> + if (isSpringConfigSelected()) MockStrategyApi.springDefaultItem else settings.mockStrategy else -> settings.mockStrategy } staticsMocking.isSelected = settings.staticsMocking == MockitoStaticMocking @@ -984,7 +985,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m } private fun configureSpringTestFrameworkIfRequired() { - if (springConfig.item != NO_SPRING_CONFIGURATION_OPTION) { + if (isSpringConfigSelected()) { SpringModule.installedItems .forEach { configureSpringTestDependency(it) } @@ -1233,7 +1234,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m private fun updateMockStrategy(springTestType: SpringTestType){ when (springTestType) { UNIT_TEST -> { - if(springConfig.item != NO_SPRING_CONFIGURATION_OPTION){ + if(isSpringConfigSelected()){ mockStrategies.item = MockStrategyApi.springDefaultItem staticsMocking.isSelected = true } @@ -1334,7 +1335,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m index: Int, selected: Boolean, hasFocus: Boolean ) { this.append(value.displayName, SimpleTextAttributes.REGULAR_ATTRIBUTES) - if (springConfig.item != NO_SPRING_CONFIGURATION_OPTION) { + if (isSpringConfigSelected()) { SpringModule.installedItems // only first missing test framework is shown to avoid overflowing ComboBox .firstOrNull { !it.testFrameworkInstalled }