@@ -76,6 +76,7 @@ import com.intellij.util.ui.UIUtil
76
76
import com.intellij.util.ui.components.BorderLayoutPanel
77
77
import org.jetbrains.concurrency.Promise
78
78
import org.jetbrains.concurrency.thenRun
79
+ import org.jetbrains.kotlin.asJava.classes.KtUltraLightClass
79
80
import org.utbot.common.filterWhen
80
81
import org.utbot.common.PathUtil.toPath
81
82
import org.utbot.framework.UtSettings
@@ -186,6 +187,16 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
186
187
title = " Generate tests with UtBot"
187
188
setResizable(false )
188
189
190
+ TestFramework .allItems.forEach {
191
+ it.isInstalled = findFrameworkLibrary(model.project, model.testModule, it) != null
192
+ }
193
+ MockFramework .allItems.forEach {
194
+ it.isInstalled = findFrameworkLibrary(model.project, model.testModule, it) != null
195
+ }
196
+ StaticsMocking .allItems.forEach {
197
+ it.isConfigured = staticsMockingConfigured()
198
+ }
199
+
189
200
// Configure notification urls callbacks
190
201
TestsReportNotifier .urlOpeningListener.callbacks[TestReportUrlOpeningListener .mockitoSuffix]?.plusAssign {
191
202
configureMockFramework()
@@ -435,7 +446,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
435
446
.toSet()
436
447
437
448
val selectedMethods = selectedMembers.filter { it.member is PsiMethod }.toSet()
438
- model.selectedMethods = if (selectedMethods.isEmpty ()) null else selectedMethods
449
+ model.selectedMethods = if (selectedMethods.any ()) selectedMethods else null
439
450
440
451
model.testFramework = testFrameworks.item
441
452
model.mockStrategy = mockStrategies.item
@@ -582,7 +593,6 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
582
593
cbSpecifyTestPackage.isEnabled = model.srcClasses.all { cl -> cl.packageName.isNotEmpty() }
583
594
584
595
val settings = model.project.service<Settings >()
585
- codegenLanguages.item = settings.codegenLanguage
586
596
mockStrategies.item = settings.mockStrategy
587
597
staticsMocking.item = settings.staticsMocking
588
598
parametrizedTestSources.item = settings.parametrizedTestSource
@@ -591,15 +601,18 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
591
601
mockStrategies.isEnabled = areMocksSupported
592
602
staticsMocking.isEnabled = areMocksSupported && mockStrategies.item != MockStrategyApi .NO_MOCKS
593
603
594
- // We do not support parameterized tests for JUnit4
604
+ codegenLanguages.item =
605
+ if (model.srcClasses.all { it is KtUltraLightClass }) CodegenLanguage .KOTLIN else CodegenLanguage .JAVA
606
+
607
+ val installedTestFramework = TestFramework .allItems.singleOrNull { it.isInstalled }
595
608
currentFrameworkItem = when (parametrizedTestSources.item) {
596
- ParametrizedTestSource .DO_NOT_PARAMETRIZE -> settings.testFramework
597
- ParametrizedTestSource .PARAMETRIZE ->
598
- if (settings.testFramework == Junit4 ) TestFramework .parametrizedDefaultItem else settings.testFramework
609
+ ParametrizedTestSource .DO_NOT_PARAMETRIZE -> installedTestFramework ? : settings.testFramework
610
+ ParametrizedTestSource .PARAMETRIZE -> installedTestFramework
611
+ ? : if (settings.testFramework != Junit4 ) settings.testFramework else TestFramework .parametrizedDefaultItem
599
612
}
600
613
601
614
updateTestFrameworksList(settings.parametrizedTestSource)
602
- updateParametrizationVisibility(settings.testFramework )
615
+ updateParametrizationEnabled(currentFrameworkItem )
603
616
604
617
updateMockStrategyList()
605
618
updateStaticMockingStrategyList()
@@ -814,7 +827,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
814
827
val item = comboBox.item as TestFramework
815
828
816
829
currentFrameworkItem = item
817
- updateParametrizationVisibility (currentFrameworkItem)
830
+ updateParametrizationEnabled (currentFrameworkItem)
818
831
}
819
832
820
833
parametrizedTestSources.addActionListener { event ->
@@ -864,10 +877,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
864
877
ParametrizedTestSource .DO_NOT_PARAMETRIZE -> TestFramework .defaultItem
865
878
ParametrizedTestSource .PARAMETRIZE -> TestFramework .parametrizedDefaultItem
866
879
}
867
- enabledTestFrameworks.forEach {
868
- it.isInstalled = findFrameworkLibrary(model.project, model.testModule, it) != null
869
- if (it.isInstalled && ! defaultItem.isInstalled) defaultItem = it
870
- }
880
+ enabledTestFrameworks.forEach { if (it.isInstalled && ! defaultItem.isInstalled) defaultItem = it }
871
881
872
882
testFrameworks.model = DefaultComboBoxModel (enabledTestFrameworks.toTypedArray())
873
883
testFrameworks.item = if (currentFrameworkItem in enabledTestFrameworks) currentFrameworkItem else defaultItem
@@ -887,7 +897,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
887
897
}
888
898
889
899
// We would like to disable parametrization options for JUnit4
890
- private fun updateParametrizationVisibility (testFramework : TestFramework ) {
900
+ private fun updateParametrizationEnabled (testFramework : TestFramework ) {
891
901
when (testFramework) {
892
902
Junit4 -> parametrizedTestSources.isEnabled = false
893
903
Junit5 ,
@@ -896,9 +906,6 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
896
906
}
897
907
898
908
private fun updateMockStrategyList () {
899
- MOCKITO .isInstalled =
900
- findFrameworkLibrary(model.project, model.testModule, MOCKITO ) != null
901
-
902
909
mockStrategies.renderer = object : ColoredListCellRenderer <MockStrategyApi >() {
903
910
override fun customizeCellRenderer (
904
911
list : JList <out MockStrategyApi >, value : MockStrategyApi ? ,
@@ -913,8 +920,6 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
913
920
}
914
921
915
922
private fun updateStaticMockingStrategyList () {
916
- val staticsMockingConfigured = staticsMockingConfigured()
917
- StaticsMocking .allItems.forEach { it.isConfigured = staticsMockingConfigured }
918
923
staticsMocking.renderer = object : ColoredListCellRenderer <StaticsMocking >() {
919
924
override fun customizeCellRenderer (
920
925
list : JList <out StaticsMocking >, value : StaticsMocking ? ,
0 commit comments