diff --git a/sqldev/pom.xml b/sqldev/pom.xml
index 41261000..c688b6e7 100644
--- a/sqldev/pom.xml
+++ b/sqldev/pom.xml
@@ -5,7 +5,7 @@
org.utplsql
org.utplsql.sqldev
- 0.7.0
+ 0.7.1
bundle
UTF-8
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/dal/UtplsqlDao.xtend b/sqldev/src/main/java/org/utplsql/sqldev/dal/UtplsqlDao.xtend
index e7a12a50..941d3f85 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/dal/UtplsqlDao.xtend
+++ b/sqldev/src/main/java/org/utplsql/sqldev/dal/UtplsqlDao.xtend
@@ -179,7 +179,7 @@ class UtplsqlDao {
val sql = '''
SELECT count(*)
FROM TABLE(ut_runner.get_suites_info(upper(?), upper(?)))
- WHERE item_type = 'UT_TEST'
+ WHERE item_type IN ('UT_TEST', 'UT_SUITE')
AND (item_name = upper(?) or ? IS NULL)
'''
found = jdbcTemplate.queryForObject(sql, Integer, #[owner, objectName, subobjectName, subobjectName])
@@ -388,6 +388,14 @@ class UtplsqlDao {
SELECT object_owner,
object_name,
path AS suitepath,
+ count(
+ CASE
+ WHEN item_type = 'UT_TEST' THEN
+ 1
+ ELSE
+ NULL
+ END
+ ) over (partition by object_owner, object_name) AS test_count,
item_type,
item_name,
item_description
@@ -416,7 +424,7 @@ class UtplsqlDao {
'Yes' AS multiselectable,
'Yes' AS relevant
FROM test
- WHERE item_type = 'UT_TEST'
+ WHERE item_type IN ('UT_TEST', 'UT_SUITE')
UNION ALL
SELECT object_owner || '.' || object_name AS parent_id,
object_owner || '.' || object_name || '.' || item_name AS id,
@@ -451,10 +459,10 @@ class UtplsqlDao {
object_owner || ':' || suitepath AS id,
item_name AS name,
item_description AS description,
- CASE item_type
- WHEN 'UT_SUITE' THEN
+ CASE
+ WHEN item_type = 'UT_SUITE' AND test_count > 0 THEN
'PACKAGE_ICON'
- WHEN 'UT_TEST' THEN
+ WHEN item_type = 'UT_TEST' THEN
'PROCEDURE_ICON'
ELSE
'FOLDER_ICON'
@@ -492,7 +500,7 @@ class UtplsqlDao {
lower(a.name) AS name,
a.text,
a.subobject_name
- FROM table(ut3.ut_annotation_manager.get_annotated_objects(user, 'PACKAGE')) o
+ FROM table(«utplsqlSchema».ut_annotation_manager.get_annotated_objects(user, 'PACKAGE')) o
CROSS JOIN table(o.annotations) a
WHERE lower(a.name) in ('suite', 'suitepath', 'endcontext', 'test')
OR lower(a.name) = 'context' AND regexp_like(text, '(\w+)(\.\w+)*')
diff --git a/sqldev/src/test/java/org/utplsql/sqldev/tests/DalTest.xtend b/sqldev/src/test/java/org/utplsql/sqldev/tests/DalTest.xtend
index 9dbad90b..19699259 100644
--- a/sqldev/src/test/java/org/utplsql/sqldev/tests/DalTest.xtend
+++ b/sqldev/src/test/java/org/utplsql/sqldev/tests/DalTest.xtend
@@ -328,7 +328,7 @@ class DalTest extends AbstractJdbcTest {
PROCEDURE t3;
END junit_utplsql_test_pkg;
''')
- val actualNodes = dao.runnables()
+ val actualNodes = dao.runnables()
Assert.assertEquals(16, actualNodes.size)
val actual = new HashMap
for (node : actualNodes) {
@@ -472,4 +472,69 @@ class DalTest extends AbstractJdbcTest {
}
+ @Test
+ def void issue54FolderIconForSuitesWithoutTests() {
+ setupAndTeardown
+ jdbcTemplate.execute('''
+ CREATE OR REPLACE PACKAGE junit_utplsql_test_pkg IS
+ -- %suite
+
+ END junit_utplsql_test_pkg;
+ ''')
+ val dao = new UtplsqlDao(dataSource.connection)
+ val actualNodes = dao.runnables()
+ Assert.assertEquals(4, actualNodes.size)
+ val pkg = actualNodes.findFirst[it.id == "SCOTT:junit_utplsql_test_pkg"]
+ Assert.assertEquals("FOLDER_ICON", pkg.iconName)
+ jdbcTemplate.execute("DROP PACKAGE junit_utplsql_test_pkg")
+ }
+
+ @Test
+ def void issue54PackageIconForSuitesWithTests() {
+ setupAndTeardown
+ jdbcTemplate.execute('''
+ CREATE OR REPLACE PACKAGE junit_utplsql_test_pkg IS
+ -- %suite
+
+ -- %test
+ PROCEDURE t1;
+
+ END junit_utplsql_test_pkg;
+ ''')
+ val dao = new UtplsqlDao(dataSource.connection)
+ val actualNodes = dao.runnables()
+ Assert.assertEquals(6, actualNodes.size)
+ val pkg = actualNodes.findFirst[it.id == "SCOTT:junit_utplsql_test_pkg"]
+ Assert.assertEquals("PACKAGE_ICON", pkg.iconName)
+ jdbcTemplate.execute("DROP PACKAGE junit_utplsql_test_pkg")
+ }
+
+ @Test
+ def void issue55SuiteWithoutTests() {
+ setupAndTeardown
+ jdbcTemplate.execute('''
+ CREATE OR REPLACE PACKAGE junit_utplsql_test_pkg IS
+ -- %suite
+
+ END junit_utplsql_test_pkg;
+ ''')
+ val dao = new UtplsqlDao(dataSource.connection)
+ val actualNodes = dao.runnables()
+ Assert.assertEquals(4, actualNodes.size)
+ jdbcTemplate.execute("DROP PACKAGE junit_utplsql_test_pkg")
+ }
+
+ @Test
+ def void issue56SuiteWithoutTests() {
+ jdbcTemplate.execute('''
+ CREATE OR REPLACE PACKAGE junit_utplsql_test_pkg IS
+ -- %suite
+
+ END junit_utplsql_test_pkg;
+ ''')
+ val dao = new UtplsqlDao(dataSource.connection)
+ Assert.assertTrue(dao.containsUtplsqlTest("scott", "junit_utplsql_test_pkg"))
+ jdbcTemplate.execute("DROP PACKAGE junit_utplsql_test_pkg")
+ }
+
}
\ No newline at end of file