[Recent Tests] prevent from showing suite twice in select configuration step

This commit is contained in:
Yaroslav Lepenkin
2016-08-09 18:18:53 +03:00
parent 01a4286bc5
commit 5775c66e61
3 changed files with 57 additions and 26 deletions
@@ -130,32 +130,9 @@ class SelectTestStep(title: String?,
}
private fun getConfigurations(entry: RecentTestsPopupEntry): List<RecentTestsPopupEntry> {
val items = mutableListOf<RecentTestsPopupEntry>()
entry.accept(object : TestEntryVisitor() {
override fun visitTest(test: SingleTestEntry) {
val configuration = test.suite?.runConfigurationEntry ?: RunConfigurationEntry(test.runConfiguration)
items.add(test.suite ?: return)
if (isSingleTestConfiguration(configuration)) {
items.add(test.suite ?: return)
return
}
items.add(configuration)
if (configuration.suites.size > 1) {
items.add(0, test.suite ?: return)
}
}
private fun isSingleTestConfiguration(configuration: RunConfigurationEntry): Boolean {
val suites = configuration.suites
return suites.size == 1 && suites[0].tests.size == 1
}
})
return items
val collector = TestConfigurationCollector()
entry.accept(collector)
return collector.getEnclosingConfigurations()
}
}
@@ -56,4 +56,20 @@ class ConfigurationsCollector : TestEntryVisitor() {
override fun visitSuite(suite: SuiteEntry) {
entries.add(suite)
}
}
class TestConfigurationCollector : TestEntryVisitor() {
private val items = mutableListOf<RecentTestsPopupEntry>()
fun getEnclosingConfigurations(): List<RecentTestsPopupEntry> = items
override fun visitTest(test: SingleTestEntry) {
val configurationEntry = test.suite?.runConfigurationEntry ?: RunConfigurationEntry(test.runConfiguration)
items.add(configurationEntry)
if (test.suite != null && configurationEntry.suites.size > 1) {
items.add(0, test.suite!!)
}
}
}