@@ -123,6 +123,7 @@ import javax.swing.JList
123
123
import javax.swing.JPanel
124
124
import kotlin.streams.toList
125
125
import org.jetbrains.concurrency.thenRun
126
+ import org.jetbrains.kotlin.asJava.classes.KtUltraLightClass
126
127
import org.utbot.intellij.plugin.ui.utils.allLibraries
127
128
128
129
private const val RECENTS_KEY = " org.utbot.recents"
@@ -182,6 +183,15 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
182
183
title = " Generate tests with UtBot"
183
184
setResizable(false )
184
185
186
+ TestFramework .allItems.forEach {
187
+ it.isInstalled = findFrameworkLibrary(model.project, model.testModule, it) != null
188
+ }
189
+ MockFramework .allItems.forEach {
190
+ it.isInstalled = findFrameworkLibrary(model.project, model.testModule, it) != null
191
+ }
192
+ StaticsMocking .allItems.forEach { it.isConfigured = staticsMockingConfigured() }
193
+
194
+
185
195
// Configure notification urls callbacks
186
196
TestsReportNotifier .urlOpeningListener.callbacks[TestReportUrlOpeningListener .mockitoSuffix]?.plusAssign {
187
197
if (createMockFrameworkNotificationDialog() == Messages .YES ) {
@@ -426,7 +436,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
426
436
.toSet()
427
437
428
438
val selectedMethods = selectedMembers.filter { it.member is PsiMethod }.toSet()
429
- model.selectedMethods = if ( selectedMethods.isEmpty()) null else selectedMethods
439
+ model.selectedMethods = selectedMethods.ifEmpty { null }
430
440
431
441
model.testFramework = testFrameworks.item
432
442
model.mockStrategy = mockStrategies.item
@@ -572,7 +582,6 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
572
582
cbSpecifyTestPackage.isEnabled = model.srcClasses.all { cl -> cl.packageName.isNotEmpty() }
573
583
574
584
val settings = model.project.service<Settings >()
575
- codegenLanguages.item = settings.codegenLanguage
576
585
mockStrategies.item = settings.mockStrategy
577
586
staticsMocking.item = settings.staticsMocking
578
587
parametrizedTestSources.item = settings.parametrizedTestSource
@@ -581,15 +590,19 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
581
590
mockStrategies.isEnabled = areMocksSupported
582
591
staticsMocking.isEnabled = areMocksSupported && mockStrategies.item != MockStrategyApi .NO_MOCKS
583
592
584
- // We do not support parameterized tests for JUnit4
593
+ codegenLanguages.item =
594
+ if (model.srcClasses.all { it is KtUltraLightClass }) CodegenLanguage .KOTLIN else CodegenLanguage .JAVA
595
+
596
+
597
+ val installedTestFramework = TestFramework .allItems.singleOrNull { it.isInstalled }
585
598
currentFrameworkItem = when (parametrizedTestSources.item) {
586
- ParametrizedTestSource .DO_NOT_PARAMETRIZE -> settings.testFramework
587
- ParametrizedTestSource .PARAMETRIZE ->
588
- if (settings.testFramework == Junit4 ) TestFramework .parametrizedDefaultItem else settings.testFramework
599
+ ParametrizedTestSource .DO_NOT_PARAMETRIZE -> installedTestFramework ? : settings.testFramework
600
+ ParametrizedTestSource .PARAMETRIZE -> installedTestFramework
601
+ ? : if (settings.testFramework != Junit4 ) settings.testFramework else TestFramework .parametrizedDefaultItem
589
602
}
590
603
591
604
updateTestFrameworksList(settings.parametrizedTestSource)
592
- updateParametrizationVisibility(settings.testFramework )
605
+ updateParametrizationEnabled(currentFrameworkItem )
593
606
594
607
updateMockStrategyList()
595
608
updateStaticMockingStrategyList()
@@ -839,7 +852,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
839
852
val item = comboBox.item as TestFramework
840
853
841
854
currentFrameworkItem = item
842
- updateParametrizationVisibility (currentFrameworkItem)
855
+ updateParametrizationEnabled (currentFrameworkItem)
843
856
}
844
857
845
858
parametrizedTestSources.addActionListener { event ->
@@ -889,10 +902,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
889
902
ParametrizedTestSource .DO_NOT_PARAMETRIZE -> TestFramework .defaultItem
890
903
ParametrizedTestSource .PARAMETRIZE -> TestFramework .parametrizedDefaultItem
891
904
}
892
- enabledTestFrameworks.forEach {
893
- it.isInstalled = findFrameworkLibrary(model.project, model.testModule, it) != null
894
- if (it.isInstalled && ! defaultItem.isInstalled) defaultItem = it
895
- }
905
+ enabledTestFrameworks.forEach { if (it.isInstalled && ! defaultItem.isInstalled) defaultItem = it }
896
906
897
907
testFrameworks.model = DefaultComboBoxModel (enabledTestFrameworks.toTypedArray())
898
908
testFrameworks.item = if (currentFrameworkItem in enabledTestFrameworks) currentFrameworkItem else defaultItem
@@ -912,7 +922,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
912
922
}
913
923
914
924
// We would like to disable parametrization options for JUnit4
915
- private fun updateParametrizationVisibility (testFramework : TestFramework ) {
925
+ private fun updateParametrizationEnabled (testFramework : TestFramework ) {
916
926
when (testFramework) {
917
927
Junit4 -> parametrizedTestSources.isEnabled = false
918
928
Junit5 ,
@@ -921,9 +931,6 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
921
931
}
922
932
923
933
private fun updateMockStrategyList () {
924
- MOCKITO .isInstalled =
925
- findFrameworkLibrary(model.project, model.testModule, MOCKITO ) != null
926
-
927
934
mockStrategies.renderer = object : ColoredListCellRenderer <MockStrategyApi >() {
928
935
override fun customizeCellRenderer (
929
936
list : JList <out MockStrategyApi >, value : MockStrategyApi ? ,
@@ -938,8 +945,6 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
938
945
}
939
946
940
947
private fun updateStaticMockingStrategyList () {
941
- val staticsMockingConfigured = staticsMockingConfigured()
942
- StaticsMocking .allItems.forEach { it.isConfigured = staticsMockingConfigured }
943
948
staticsMocking.renderer = object : ColoredListCellRenderer <StaticsMocking >() {
944
949
override fun customizeCellRenderer (
945
950
list : JList <out StaticsMocking >, value : StaticsMocking ? ,
0 commit comments