@@ -448,13 +448,15 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
448448 " Otherwise, mock nothing. Mockito will be installed, if you don't have one."
449449 )
450450 }.enabledIf(ComboBoxPredicate (springConfig) {
451- model.projectType != ProjectType .Spring || ! isSpringConfigSelected()
451+ model.projectType == ProjectType .PureJvm || ! isSpringConfigSelected()
452452 })
453453 row { cell(staticsMocking)}
454454 row {
455455 cell(parametrizedTestSources)
456456 contextHelp(" Parametrization is not supported in some configurations, e.g. if mocks are used." )
457- }
457+ }.enabledIf(ComboBoxPredicate (springConfig) {
458+ model.projectType == ProjectType .PureJvm
459+ })
458460 row(" Test generation timeout:" ) {
459461 cell(BorderLayoutPanel ().apply {
460462 addToLeft(timeoutSpinner)
@@ -852,7 +854,8 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
852854 else -> settings.mockStrategy
853855 }
854856 staticsMocking.isSelected = settings.staticsMocking == MockitoStaticMocking
855- parametrizedTestSources.isSelected = settings.parametrizedTestSource == ParametrizedTestSource .PARAMETRIZE
857+ parametrizedTestSources.isSelected = (settings.parametrizedTestSource == ParametrizedTestSource .PARAMETRIZE
858+ && model.projectType == ProjectType .PureJvm )
856859
857860 mockStrategies.isEnabled = true
858861 staticsMocking.isEnabled = mockStrategies.item != MockStrategyApi .NO_MOCKS
@@ -1102,23 +1105,14 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
11021105 with ((event.source as JComboBox <* >).selectedItem) {
11031106 if (this is VirtualFile ) {
11041107 model.setSourceRootAndFindTestModule(this @with)
1105- }
1106- else {
1108+ } else {
11071109 model.setSourceRootAndFindTestModule(null )
11081110 }
11091111 }
11101112 }
11111113
1112- mockStrategies.addActionListener { event ->
1113- val comboBox = event.source as ComboBox <* >
1114- val item = comboBox.item as MockStrategyApi
1115-
1116- staticsMocking.isEnabled = item != MockStrategyApi .NO_MOCKS
1117- if (! staticsMocking.isEnabled) {
1118- staticsMocking.isSelected = false
1119- }
1120-
1121- updateParametrizationEnabled()
1114+ mockStrategies.addActionListener { _ ->
1115+ updateControlsEnabledStatus()
11221116 }
11231117
11241118 testFrameworks.addActionListener { event ->
@@ -1127,11 +1121,11 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
11271121
11281122 currentFrameworkItem = item
11291123
1130- updateParametrizationEnabled ()
1124+ updateControlsEnabledStatus ()
11311125 }
11321126
11331127 codegenLanguages.addActionListener { _ ->
1134- updateParametrizationEnabled ()
1128+ updateControlsEnabledStatus ()
11351129 }
11361130
11371131 parametrizedTestSources.addActionListener { _ ->
@@ -1141,62 +1135,49 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
11411135 ParametrizedTestSource .DO_NOT_PARAMETRIZE
11421136 }
11431137
1144- when (parametrizedTestSource) {
1145- ParametrizedTestSource .PARAMETRIZE -> {
1146- mockStrategies.item = MockStrategyApi .NO_MOCKS
1147- staticsMocking.isEnabled = false
1148- staticsMocking.isSelected = false
1149- }
1150- ParametrizedTestSource .DO_NOT_PARAMETRIZE -> {
1151- mockStrategies.isEnabled = true
1152- if (mockStrategies.item != MockStrategyApi .NO_MOCKS ) {
1153- staticsMocking.isEnabled = true
1154- staticsMocking.isSelected = true
1155- }
1156- }
1157- }
1158-
11591138 updateTestFrameworksList(parametrizedTestSource)
1139+ updateControlsEnabledStatus()
11601140 }
11611141
11621142 springConfig.addActionListener { _ ->
11631143 if (isSpringConfigSelected()) {
1164- mockStrategies.item = MockStrategyApi .springDefaultItem
1165- mockStrategies.isEnabled = false
1166- updateMockStrategyListForConfigGuidedTypeReplacements()
1167-
1168- staticsMocking.isEnabled = false
1169- staticsMocking.isSelected = true
1144+ if (isXmlSpringConfigUsed()) {
1145+ springTestsType.item = SpringTestsType .defaultItem
1146+ }
11701147
1171- springTestsType.let {
1172- it.isEnabled = ! isXmlSpringConfigUsed()
1173- if (! it.isEnabled) springTestsType.item = SpringTestsType .defaultItem
1148+ if (springTestsType.item == UNIT_TESTS ) {
1149+ mockStrategies.item = MockStrategyApi .springDefaultItem
11741150 }
1175- profileNames.isEnabled = true
11761151 } else {
11771152 mockStrategies.item = when (model.projectType) {
11781153 ProjectType .Spring -> MockStrategyApi .springDefaultItem
11791154 else -> MockStrategyApi .defaultItem
11801155 }
1181- mockStrategies.isEnabled = true
1182- updateMockStrategyList()
11831156
1184- staticsMocking.isEnabled = true
1185- staticsMocking.isSelected = mockStrategies.item != MockStrategyApi .NO_MOCKS
1186-
1187- springTestsType.isEnabled = false
11881157 springTestsType.item = SpringTestsType .defaultItem
11891158
1190- profileNames.isEnabled = false
11911159 profileNames.text = " "
11921160 }
1161+ updateMockStrategyList()
1162+ updateControlsEnabledStatus()
11931163 }
11941164
11951165 springTestsType.addActionListener { event ->
11961166 val comboBox = event.source as ComboBox <* >
11971167 val item = comboBox.item as SpringTestsType
11981168
11991169 updateTestFrameworkList(item)
1170+
1171+ when (item) {
1172+ UNIT_TESTS -> {
1173+ mockStrategies.item = MockStrategyApi .springDefaultItem
1174+ }
1175+ INTEGRATION_TESTS -> {
1176+ mockStrategies.item = MockStrategyApi .springIntegrationTestItem
1177+ }
1178+ }
1179+ updateMockStrategyList()
1180+ updateControlsEnabledStatus()
12001181 }
12011182
12021183 cbSpecifyTestPackage.addActionListener {
@@ -1263,27 +1244,28 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
12631244 }
12641245 }
12651246
1266- private fun updateMockStrategyList () {
1267- mockStrategies.renderer = object : ColoredListCellRenderer <MockStrategyApi >() {
1268- override fun customizeCellRenderer (
1269- list : JList <out MockStrategyApi >, value : MockStrategyApi ,
1270- index : Int , selected : Boolean , hasFocus : Boolean
1271- ) {
1272- this .append(value.displayName, SimpleTextAttributes .REGULAR_ATTRIBUTES )
1273- if (value != MockStrategyApi .NO_MOCKS && ! MOCKITO .isInstalled) {
1274- this .append(WILL_BE_INSTALLED_LABEL , SimpleTextAttributes .ERROR_ATTRIBUTES )
1275- }
1276- }
1277- }
1247+ private fun updateStaticMockEnabled () {
1248+ val mockStrategyIsSupported = mockStrategies.item != MockStrategyApi .NO_MOCKS
1249+
1250+ staticsMocking.isEnabled = mockStrategyIsSupported && ! isSpringConfigSelected()
1251+ staticsMocking.isSelected = mockStrategyIsSupported
12781252 }
12791253
1280- private fun updateMockStrategyListForConfigGuidedTypeReplacements () {
1254+ private fun updateMockStrategyList () {
12811255 mockStrategies.renderer = object : ColoredListCellRenderer <MockStrategyApi >() {
12821256 override fun customizeCellRenderer (
12831257 list : JList <out MockStrategyApi >, value : MockStrategyApi ,
12841258 index : Int , selected : Boolean , hasFocus : Boolean
12851259 ) {
1286- this .append(" Mock using Spring configuration" , SimpleTextAttributes .REGULAR_ATTRIBUTES )
1260+ if (mockStrategies.item == MockStrategyApi .springDefaultItem && isSpringConfigSelected()) {
1261+ this .append(" Mock using Spring configuration" , SimpleTextAttributes .REGULAR_ATTRIBUTES )
1262+ }
1263+ else {
1264+ this .append(value.displayName, SimpleTextAttributes .REGULAR_ATTRIBUTES )
1265+ if (value != MockStrategyApi .NO_MOCKS && ! MOCKITO .isInstalled) {
1266+ this .append(WILL_BE_INSTALLED_LABEL , SimpleTextAttributes .ERROR_ATTRIBUTES )
1267+ }
1268+ }
12871269 }
12881270 }
12891271 }
@@ -1343,6 +1325,31 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
13431325
13441326 }
13451327 }
1328+
1329+ private fun updateControlsEnabledStatus () {
1330+ mockStrategies.isEnabled = true
1331+
1332+ updateParametrizationEnabled()
1333+ updateStaticMockEnabled()
1334+
1335+ if (model.projectType == ProjectType .Spring ) {
1336+ updateSpringControlsEnabledStatus()
1337+ }
1338+ }
1339+
1340+ private fun updateSpringControlsEnabledStatus () {
1341+ // Parametrized tests are not supported for Spring
1342+ parametrizedTestSources.isEnabled = false
1343+
1344+ if (isSpringConfigSelected()) {
1345+ mockStrategies.isEnabled = false
1346+ profileNames.isEnabled = true
1347+ springTestsType.isEnabled = ! isXmlSpringConfigUsed()
1348+ } else {
1349+ profileNames.isEnabled = false
1350+ springTestsType.isEnabled = false
1351+ }
1352+ }
13461353}
13471354
13481355fun GenerateTestsModel.getActionText () : String =
0 commit comments