Skip to content

Commit f83f62c

Browse files
Settings revision, 2nd iteration #977 (#1088)
1 parent a97bda1 commit f83f62c

File tree

4 files changed

+39
-23
lines changed

4 files changed

+39
-23
lines changed

utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api/Api.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1143,12 +1143,12 @@ enum class MockStrategyApi(
11431143
NO_MOCKS("No mocks", "Do not mock", "Do not use mock frameworks at all"),
11441144
OTHER_PACKAGES(
11451145
"Other packages: Mockito",
1146-
"Mock package environment",
1146+
"Mock everything outside the package",
11471147
"Mock all classes outside the current package except system ones"
11481148
),
11491149
OTHER_CLASSES(
11501150
"Other classes: Mockito",
1151-
"Mock class environment",
1151+
"Mock everything outside the class",
11521152
"Mock all classes outside the class under test except system ones"
11531153
);
11541154

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/Domain.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -380,9 +380,9 @@ object TestNg : TestFramework(id = "TestNG",displayName = "TestNG") {
380380
""".trimIndent()
381381
}
382382

383-
object Junit4 : TestFramework(id = "JUnit4",displayName = "JUnit4") {
383+
object Junit4 : TestFramework(id = "JUnit4",displayName = "JUnit 4") {
384384
private val parametrizedTestsNotSupportedError: Nothing
385-
get() = error("Parametrized tests are not supported for JUnit4")
385+
get() = error("Parametrized tests are not supported for JUnit 4")
386386

387387
override val mainPackage: String = JUNIT4_PACKAGE
388388
override val testAnnotation = "@$mainPackage.Test"
@@ -453,7 +453,7 @@ object Junit4 : TestFramework(id = "JUnit4",displayName = "JUnit4") {
453453
}
454454
}
455455

456-
object Junit5 : TestFramework(id = "JUnit5", displayName = "JUnit5") {
456+
object Junit5 : TestFramework(id = "JUnit5", displayName = "JUnit 5") {
457457
override val mainPackage: String = JUNIT5_PACKAGE
458458
override val testAnnotation = "@$mainPackage.Test"
459459
override val testAnnotationFqn: String = "$mainPackage.Test"

utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/SettingsWindow.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,11 @@ class SettingsWindow(val project: Project) {
8080
step = 50,
8181
)
8282

83-
label("milliseconds")
83+
label("milliseconds per method")
8484
.apply {
8585
ContextHelpLabel.create(
86-
"Test generation may hang due to infinite loops or other code conditions. " +
87-
"Set timeout to stop waiting for hanging process."
86+
"Set this timeout to define which test is \"hanging\". Increase it to test the " +
87+
"time-consuming method or decrease if the execution speed is critical for you."
8888
)()
8989
}
9090
}

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

+31-15
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ import com.intellij.util.ui.UIUtil
7474
import com.intellij.util.ui.components.BorderLayoutPanel
7575
import java.awt.BorderLayout
7676
import java.awt.Color
77+
import java.awt.Dimension
7778
import java.awt.event.ActionEvent
7879
import java.nio.file.Files
7980
import java.nio.file.Path
@@ -90,6 +91,8 @@ import javax.swing.JComboBox
9091
import javax.swing.JComponent
9192
import javax.swing.JList
9293
import javax.swing.JPanel
94+
import javax.swing.JSpinner
95+
import javax.swing.text.DefaultFormatter
9396
import kotlin.streams.toList
9497
import org.jetbrains.concurrency.Promise
9598
import org.jetbrains.concurrency.thenRun
@@ -179,8 +182,16 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
179182
MINIMUM_TIMEOUT_VALUE_IN_SECONDS,
180183
Int.MAX_VALUE,
181184
MINIMUM_TIMEOUT_VALUE_IN_SECONDS
182-
)
183-
private val parametrizedTestSources = JCheckBox("Parametrized tests")
185+
).also {
186+
when(val editor = it.editor) {
187+
is JSpinner.DefaultEditor -> {
188+
when(val formatter = editor.textField.formatter) {
189+
is DefaultFormatter -> {formatter.allowsInvalid = false}
190+
}
191+
}
192+
}
193+
}
194+
private val parametrizedTestSources = JCheckBox("Parameterized tests")
184195

185196
private lateinit var panel: DialogPanel
186197

@@ -193,7 +204,16 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
193204
)
194205

195206
private fun <T : CodeGenerationSettingItem> createComboBox(values: Array<T>) : ComboBox<T> {
196-
return ComboBox<T>(DefaultComboBoxModel(values)).also {
207+
val comboBox = object:ComboBox<T>(DefaultComboBoxModel(values)) {
208+
var maxWidth = 0
209+
//Don't shrink strategy
210+
override fun getPreferredSize(): Dimension {
211+
val size = super.getPreferredSize()
212+
if (size.width > maxWidth) maxWidth = size.width
213+
return size.apply { width = maxWidth }
214+
}
215+
}
216+
return comboBox.also {
197217
it.renderer = CodeGenerationSettingItemRenderer()
198218
}
199219
}
@@ -243,7 +263,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
243263
@Suppress("UNCHECKED_CAST")
244264
override fun createCenterPanel(): JComponent {
245265
panel = panel {
246-
row("Test source root:") {
266+
row("Test sources root:") {
247267
component(testSourceFolderField)
248268
}
249269
row("Testing framework:") {
@@ -253,25 +273,21 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
253273
)
254274
}
255275
row { component(parametrizedTestSources) }
256-
row("Mock strategy:") {
276+
row("Mocking strategy:") {
257277
makePanelWithHelpTooltip(
258278
mockStrategies,
259-
ContextHelpLabel.create("Mock everything around the target class or the whole package except the system classes. Otherwise mock nothing.")
279+
ContextHelpLabel.create("Mock everything around the target class or the whole package except the system classes. " +
280+
"Otherwise, mock nothing. Mockito will be installed, if you don't have one.")
260281
)
261282
}
262283
row { component(staticsMocking)}
263284
row("Test generation timeout:") {
264-
cell{
285+
cell {
265286
component(timeoutSpinner)
266287
label("seconds per class")
288+
component(ContextHelpLabel.create("Set the timeout for all test generation processes per class to complete."))
267289
}
268290
}
269-
row {
270-
component(cbSpecifyTestPackage)
271-
}.apply { visible = false }
272-
row("Destination package:") {
273-
component(testPackageField)
274-
}.apply { visible = false }
275291

276292
row("Generate tests for:") {}
277293
row {
@@ -380,7 +396,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
380396
srcClasses.flatMap { it.extractFirstLevelMembers(false) }
381397
} else {
382398
srcClasses.map { MemberInfo(it) }
383-
}
399+
}.toSortedSet { o1, o2 -> o1.displayName.compareTo(o2.displayName, true) }
384400

385401
checkMembers(items)
386402
membersTable.setMemberInfos(items)
@@ -392,7 +408,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
392408
membersTable.preferredScrollableViewportSize = size(-1, height)
393409
}
394410

395-
private fun checkMembers(allMembers: List<MemberInfo>) {
411+
private fun checkMembers(allMembers: Collection<MemberInfo>) {
396412
val selectedDisplayNames = model.selectedMembers.map { it.displayName }
397413
val selectedMembers = allMembers.filter { it.displayName in selectedDisplayNames }
398414

0 commit comments

Comments
 (0)