@@ -117,6 +117,7 @@ import javax.swing.JList
117
117
import javax.swing.JPanel
118
118
import kotlin.streams.toList
119
119
import org.jetbrains.concurrency.thenRun
120
+ import org.jetbrains.kotlin.asJava.classes.KtUltraLightClass
120
121
import org.utbot.intellij.plugin.ui.utils.allLibraries
121
122
122
123
private const val RECENTS_KEY = " org.utbot.recents"
@@ -176,6 +177,15 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
176
177
title = " Generate tests with UtBot"
177
178
setResizable(false )
178
179
180
+ TestFramework .allItems.forEach {
181
+ it.isInstalled = findFrameworkLibrary(model.project, model.testModule, it) != null
182
+ }
183
+ MockFramework .allItems.forEach {
184
+ it.isInstalled = findFrameworkLibrary(model.project, model.testModule, it) != null
185
+ }
186
+ StaticsMocking .allItems.forEach { it.isConfigured = staticsMockingConfigured() }
187
+
188
+
179
189
// Configure notification urls callbacks
180
190
TestsReportNotifier .urlOpeningListener.callbacks[TestReportUrlOpeningListener .mockitoSuffix]?.plusAssign {
181
191
if (createMockFrameworkNotificationDialog() == Messages .YES ) {
@@ -420,7 +430,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
420
430
.toSet()
421
431
422
432
val selectedMethods = selectedMembers.filter { it.member is PsiMethod }.toSet()
423
- model.selectedMethods = if ( selectedMethods.isEmpty()) null else selectedMethods
433
+ model.selectedMethods = selectedMethods.ifEmpty { null }
424
434
425
435
model.testFramework = testFrameworks.item
426
436
model.mockStrategy = mockStrategies.item
@@ -566,7 +576,6 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
566
576
cbSpecifyTestPackage.isEnabled = model.srcClasses.all { cl -> cl.packageName.isNotEmpty() }
567
577
568
578
val settings = model.project.service<Settings >()
569
- codegenLanguages.item = settings.codegenLanguage
570
579
mockStrategies.item = settings.mockStrategy
571
580
staticsMocking.item = settings.staticsMocking
572
581
parametrizedTestSources.item = settings.parametrizedTestSource
@@ -575,15 +584,19 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
575
584
mockStrategies.isEnabled = areMocksSupported
576
585
staticsMocking.isEnabled = areMocksSupported && mockStrategies.item != MockStrategyApi .NO_MOCKS
577
586
578
- // We do not support parameterized tests for JUnit4
587
+ codegenLanguages.item =
588
+ if (model.srcClasses.all { it is KtUltraLightClass }) CodegenLanguage .KOTLIN else CodegenLanguage .JAVA
589
+
590
+
591
+ val installedTestFramework = TestFramework .allItems.singleOrNull { it.isInstalled }
579
592
currentFrameworkItem = when (parametrizedTestSources.item) {
580
- ParametrizedTestSource .DO_NOT_PARAMETRIZE -> settings.testFramework
581
- ParametrizedTestSource .PARAMETRIZE ->
582
- if (settings.testFramework == Junit4 ) TestFramework .parametrizedDefaultItem else settings.testFramework
593
+ ParametrizedTestSource .DO_NOT_PARAMETRIZE -> installedTestFramework ? : settings.testFramework
594
+ ParametrizedTestSource .PARAMETRIZE -> installedTestFramework
595
+ ? : if (settings.testFramework != Junit4 ) settings.testFramework else TestFramework .parametrizedDefaultItem
583
596
}
584
597
585
598
updateTestFrameworksList(settings.parametrizedTestSource)
586
- updateParametrizationVisibility(settings.testFramework )
599
+ updateParametrizationEnabled(currentFrameworkItem )
587
600
588
601
updateMockStrategyList()
589
602
updateStaticMockingStrategyList()
@@ -833,7 +846,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
833
846
val item = comboBox.item as TestFramework
834
847
835
848
currentFrameworkItem = item
836
- updateParametrizationVisibility (currentFrameworkItem)
849
+ updateParametrizationEnabled (currentFrameworkItem)
837
850
}
838
851
839
852
parametrizedTestSources.addActionListener { event ->
@@ -883,10 +896,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
883
896
ParametrizedTestSource .DO_NOT_PARAMETRIZE -> TestFramework .defaultItem
884
897
ParametrizedTestSource .PARAMETRIZE -> TestFramework .parametrizedDefaultItem
885
898
}
886
- enabledTestFrameworks.forEach {
887
- it.isInstalled = findFrameworkLibrary(model.project, model.testModule, it) != null
888
- if (it.isInstalled && ! defaultItem.isInstalled) defaultItem = it
889
- }
899
+ enabledTestFrameworks.forEach { if (it.isInstalled && ! defaultItem.isInstalled) defaultItem = it }
890
900
891
901
testFrameworks.model = DefaultComboBoxModel (enabledTestFrameworks.toTypedArray())
892
902
testFrameworks.item = if (currentFrameworkItem in enabledTestFrameworks) currentFrameworkItem else defaultItem
@@ -906,7 +916,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
906
916
}
907
917
908
918
// We would like to disable parametrization options for JUnit4
909
- private fun updateParametrizationVisibility (testFramework : TestFramework ) {
919
+ private fun updateParametrizationEnabled (testFramework : TestFramework ) {
910
920
when (testFramework) {
911
921
Junit4 -> parametrizedTestSources.isEnabled = false
912
922
Junit5 ,
@@ -915,9 +925,6 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
915
925
}
916
926
917
927
private fun updateMockStrategyList () {
918
- MOCKITO .isInstalled =
919
- findFrameworkLibrary(model.project, model.testModule, MOCKITO ) != null
920
-
921
928
mockStrategies.renderer = object : ColoredListCellRenderer <MockStrategyApi >() {
922
929
override fun customizeCellRenderer (
923
930
list : JList <out MockStrategyApi >, value : MockStrategyApi ? ,
@@ -932,8 +939,6 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
932
939
}
933
940
934
941
private fun updateStaticMockingStrategyList () {
935
- val staticsMockingConfigured = staticsMockingConfigured()
936
- StaticsMocking .allItems.forEach { it.isConfigured = staticsMockingConfigured }
937
942
staticsMocking.renderer = object : ColoredListCellRenderer <StaticsMocking >() {
938
943
override fun customizeCellRenderer (
939
944
list : JList <out StaticsMocking >, value : StaticsMocking ? ,
0 commit comments