Skip to content

Commit 522980e

Browse files
committed
Default value of codegen language and test framework is improved in UI
1 parent 9e88e49 commit 522980e

File tree

1 file changed

+23
-18
lines changed

1 file changed

+23
-18
lines changed

utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ import javax.swing.JList
117117
import javax.swing.JPanel
118118
import kotlin.streams.toList
119119
import org.jetbrains.concurrency.thenRun
120+
import org.jetbrains.kotlin.asJava.classes.KtUltraLightClass
120121
import org.utbot.intellij.plugin.ui.utils.allLibraries
121122

122123
private const val RECENTS_KEY = "org.utbot.recents"
@@ -176,6 +177,15 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
176177
title = "Generate tests with UtBot"
177178
setResizable(false)
178179

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+
179189
// Configure notification urls callbacks
180190
TestsReportNotifier.urlOpeningListener.callbacks[TestReportUrlOpeningListener.mockitoSuffix]?.plusAssign {
181191
if (createMockFrameworkNotificationDialog() == Messages.YES) {
@@ -420,7 +430,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
420430
.toSet()
421431

422432
val selectedMethods = selectedMembers.filter { it.member is PsiMethod }.toSet()
423-
model.selectedMethods = if (selectedMethods.isEmpty()) null else selectedMethods
433+
model.selectedMethods = selectedMethods.ifEmpty { null }
424434

425435
model.testFramework = testFrameworks.item
426436
model.mockStrategy = mockStrategies.item
@@ -566,7 +576,6 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
566576
cbSpecifyTestPackage.isEnabled = model.srcClasses.all { cl -> cl.packageName.isNotEmpty() }
567577

568578
val settings = model.project.service<Settings>()
569-
codegenLanguages.item = settings.codegenLanguage
570579
mockStrategies.item = settings.mockStrategy
571580
staticsMocking.item = settings.staticsMocking
572581
parametrizedTestSources.item = settings.parametrizedTestSource
@@ -575,15 +584,19 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
575584
mockStrategies.isEnabled = areMocksSupported
576585
staticsMocking.isEnabled = areMocksSupported && mockStrategies.item != MockStrategyApi.NO_MOCKS
577586

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 }
579592
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
583596
}
584597

585598
updateTestFrameworksList(settings.parametrizedTestSource)
586-
updateParametrizationVisibility(settings.testFramework)
599+
updateParametrizationEnabled(currentFrameworkItem)
587600

588601
updateMockStrategyList()
589602
updateStaticMockingStrategyList()
@@ -833,7 +846,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
833846
val item = comboBox.item as TestFramework
834847

835848
currentFrameworkItem = item
836-
updateParametrizationVisibility(currentFrameworkItem)
849+
updateParametrizationEnabled(currentFrameworkItem)
837850
}
838851

839852
parametrizedTestSources.addActionListener { event ->
@@ -883,10 +896,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
883896
ParametrizedTestSource.DO_NOT_PARAMETRIZE -> TestFramework.defaultItem
884897
ParametrizedTestSource.PARAMETRIZE -> TestFramework.parametrizedDefaultItem
885898
}
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 }
890900

891901
testFrameworks.model = DefaultComboBoxModel(enabledTestFrameworks.toTypedArray())
892902
testFrameworks.item = if (currentFrameworkItem in enabledTestFrameworks) currentFrameworkItem else defaultItem
@@ -906,7 +916,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
906916
}
907917

908918
//We would like to disable parametrization options for JUnit4
909-
private fun updateParametrizationVisibility(testFramework: TestFramework) {
919+
private fun updateParametrizationEnabled(testFramework: TestFramework) {
910920
when (testFramework) {
911921
Junit4 -> parametrizedTestSources.isEnabled = false
912922
Junit5,
@@ -915,9 +925,6 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
915925
}
916926

917927
private fun updateMockStrategyList() {
918-
MOCKITO.isInstalled =
919-
findFrameworkLibrary(model.project, model.testModule, MOCKITO) != null
920-
921928
mockStrategies.renderer = object : ColoredListCellRenderer<MockStrategyApi>() {
922929
override fun customizeCellRenderer(
923930
list: JList<out MockStrategyApi>, value: MockStrategyApi?,
@@ -932,8 +939,6 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
932939
}
933940

934941
private fun updateStaticMockingStrategyList() {
935-
val staticsMockingConfigured = staticsMockingConfigured()
936-
StaticsMocking.allItems.forEach { it.isConfigured = staticsMockingConfigured }
937942
staticsMocking.renderer = object : ColoredListCellRenderer<StaticsMocking>() {
938943
override fun customizeCellRenderer(
939944
list: JList<out StaticsMocking>, value: StaticsMocking?,

0 commit comments

Comments
 (0)