Skip to content

Commit 7a60094

Browse files
handle common prefix for when running single test
1 parent fd344d6 commit 7a60094

File tree

3 files changed

+50
-3
lines changed

3 files changed

+50
-3
lines changed

sqldev/src/main/java/org/utplsql/sqldev/model/PrefixTools.xtend

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
package org.utplsql.sqldev.model
1717

18+
import java.util.List
19+
1820
// converted to Xtend based on Java code on https://www.geeksforgeeks.org/longest-common-prefix-using-binary-search/
1921
class PrefixTools {
2022
def static int findMinLength(String[] arr, int n) {
@@ -61,4 +63,22 @@ class PrefixTools {
6163
}
6264
return prefix
6365
}
66+
67+
def static String commonPrefix(List<String> list) {
68+
if (list.size === 0) {
69+
return ""
70+
} else if (list.size === 1) {
71+
val pos = list.get(0).lastIndexOf(".");
72+
if (pos > 0) {
73+
return list.get(0).substring(0, pos + 1)
74+
} else {
75+
return ""
76+
}
77+
} else {
78+
var String[] testArray = newArrayOfSize(list.size)
79+
var prefix = commonPrefix(list.toArray(testArray), list.size)
80+
return prefix
81+
}
82+
}
83+
6484
}

sqldev/src/main/java/org/utplsql/sqldev/ui/runner/TestOverviewTableModel.xtend

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
import java.util.LinkedHashMap
1919
import javax.swing.Icon
2020
import javax.swing.table.DefaultTableModel
21+
import org.utplsql.sqldev.model.PrefixTools
2122
import org.utplsql.sqldev.model.runner.Test
2223
import org.utplsql.sqldev.resources.UtplsqlResources
23-
import org.utplsql.sqldev.model.PrefixTools
2424

2525
class TestOverviewTableModel extends DefaultTableModel {
2626
LinkedHashMap<String, Test> tests
@@ -61,8 +61,7 @@ class TestOverviewTableModel extends DefaultTableModel {
6161
return null
6262
}
6363
if (commonPrefix === null) {
64-
var String[] testArray = newArrayOfSize(tests.keySet.size)
65-
commonPrefix = PrefixTools.commonPrefix(tests.keySet.toArray(testArray), tests.keySet.size)
64+
commonPrefix = PrefixTools.commonPrefix(tests.keySet.toList)
6665
}
6766
switch (col) {
6867
case 0: {
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package org.utplsql.sqldev.test
2+
3+
import org.junit.Assert
4+
import org.junit.Test
5+
import org.utplsql.sqldev.model.PrefixTools
6+
7+
class PrefixToolsTest {
8+
@Test
9+
def void two() {
10+
val actual = PrefixTools.commonPrefix(#["junit.test.a", "junit.test.b"])
11+
val expected = "junit.test."
12+
Assert.assertEquals(expected, actual)
13+
}
14+
15+
@Test
16+
def void oneWithDot() {
17+
val actual = PrefixTools.commonPrefix(#["junit.test.a"])
18+
val expected = "junit.test."
19+
Assert.assertEquals(expected, actual)
20+
}
21+
22+
@Test
23+
def void oneWithoutDot() {
24+
val actual = PrefixTools.commonPrefix(#["junit-test-a"])
25+
val expected = ""
26+
Assert.assertEquals(expected, actual)
27+
}
28+
}

0 commit comments

Comments
 (0)