diff --git a/sqldev/pom.xml b/sqldev/pom.xml index 7cccd0d2..75b634b5 100644 --- a/sqldev/pom.xml +++ b/sqldev/pom.xml @@ -5,7 +5,7 @@ org.utplsql org.utplsql.sqldev - 1.1.0 + 1.1.1-SNAPSHOT bundle UTF-8 diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Expectation.xtend b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Expectation.xtend index b39d5577..67d7cc19 100644 --- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Expectation.xtend +++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Expectation.xtend @@ -28,7 +28,7 @@ class Expectation extends AbstractModel { def getFailureText() { return ''' «message.trim» - «caller.trim» + «caller?.trim» '''.toString.trim } @@ -38,10 +38,12 @@ class Expectation extends AbstractModel { def getCallerLine() { var Integer line = null - val p = Pattern.compile("(?i)\"[^\\\"]+\",\\s+line\\s*([0-9]+)") - val m = p.matcher(caller) - if (m.find) { - line = Integer.valueOf(m.group(1)) + if (caller !== null) { + val p = Pattern.compile("(?i)\"[^\\\"]+\",\\s+line\\s*([0-9]+)") + val m = p.matcher(caller) + if (m.find) { + line = Integer.valueOf(m.group(1)) + } } return line } diff --git a/sqldev/src/main/java/org/utplsql/sqldev/ui/runner/RunnerPanel.xtend b/sqldev/src/main/java/org/utplsql/sqldev/ui/runner/RunnerPanel.xtend index 5ebc2cf1..e1ce9192 100644 --- a/sqldev/src/main/java/org/utplsql/sqldev/ui/runner/RunnerPanel.xtend +++ b/sqldev/src/main/java/org/utplsql/sqldev/ui/runner/RunnerPanel.xtend @@ -66,6 +66,7 @@ import org.utplsql.sqldev.dal.UtplsqlDao import org.utplsql.sqldev.model.LimitedLinkedHashMap import org.utplsql.sqldev.model.preference.PreferenceModel import org.utplsql.sqldev.model.runner.Run +import org.utplsql.sqldev.model.runner.Test import org.utplsql.sqldev.parser.UtplsqlParser import org.utplsql.sqldev.resources.UtplsqlResources import org.utplsql.sqldev.runner.UtplsqlRunner @@ -248,17 +249,21 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener { } sorter.rowFilter = filter } + + private def openTest(Test test) { + val dao = new UtplsqlDao(Connections.instance.getConnection(currentRun.connectionName)) + val source = dao.getSource(test.ownerName, "PACKAGE", test.objectName.toUpperCase).trim + val parser = new UtplsqlParser(source) + val line = parser.getLineOf(test.procedureName) + openEditor(test.ownerName, "PACKAGE", test.objectName.toUpperCase, line, 1) + } private def openSelectedTest() { val rowIndex = testOverviewTable.selectedRow if (rowIndex != -1) { val row = testOverviewTable.convertRowIndexToModel(rowIndex) val test = testOverviewTableModel.getTest(row) - val dao = new UtplsqlDao(Connections.instance.getConnection(currentRun.connectionName)) - val source = dao.getSource(test.ownerName, "PACKAGE", test.objectName.toUpperCase).trim - val parser = new UtplsqlParser(source) - val line = parser.getLineOf(test.procedureName) - openEditor(test.ownerName, "PACKAGE", test.objectName.toUpperCase, line, 1) + openTest(test) } } @@ -268,7 +273,12 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener { val row = failuresTable.convertRowIndexToModel(rowIndex) val expectation = failuresTableModel.getExpectation(row) val test = testOverviewTableModel.getTest(testOverviewTable.convertRowIndexToModel(testOverviewTable.selectedRow)) - openEditor(test.ownerName, "PACKAGE BODY", test.objectName.toUpperCase, expectation.callerLine, 1) + val callerLine = expectation.callerLine + if (callerLine !== null) { + openEditor(test.ownerName, "PACKAGE BODY", test.objectName.toUpperCase, expectation.callerLine, 1) + } else { + openTest(test) + } } } diff --git a/sqldev/src/test/java/org/utplsql/sqldev/test/dal/DalTest.xtend b/sqldev/src/test/java/org/utplsql/sqldev/test/dal/DalTest.xtend index ccf52469..f27a116d 100644 --- a/sqldev/src/test/java/org/utplsql/sqldev/test/dal/DalTest.xtend +++ b/sqldev/src/test/java/org/utplsql/sqldev/test/dal/DalTest.xtend @@ -399,11 +399,11 @@ class DalTest extends AbstractJdbcTest { Assert.assertEquals("SCOTT:a", actual.get("SCOTT:a.b")) Assert.assertEquals("SCOTT:a.b", actual.get("SCOTT:a.b.c")) Assert.assertEquals("SCOTT:a.b.c", actual.get("SCOTT:a.b.c.junit_utplsql_test_pkg")) - Assert.assertEquals("SCOTT:a.b.c.junit_utplsql_test_pkg", actual.get("SCOTT:a.b.c.junit_utplsql_test_pkg.myContext")) + Assert.assertEquals("SCOTT:a.b.c.junit_utplsql_test_pkg.nested_context_#", actual.get("SCOTT:a.b.c.junit_utplsql_test_pkg.nested_context_#1")) Assert.assertEquals("SCOTT:a.b.c.junit_utplsql_test_pkg", actual.get("SCOTT:a.b.c.junit_utplsql_test_pkg.t0")) Assert.assertEquals("SCOTT:a.b.c.junit_utplsql_test_pkg", actual.get("SCOTT:a.b.c.junit_utplsql_test_pkg.t3")) - Assert.assertEquals("SCOTT:a.b.c.junit_utplsql_test_pkg.myContext", actual.get("SCOTT:a.b.c.junit_utplsql_test_pkg.myContext.t1")) - Assert.assertEquals("SCOTT:a.b.c.junit_utplsql_test_pkg.myContext", actual.get("SCOTT:a.b.c.junit_utplsql_test_pkg.myContext.t2")) + Assert.assertEquals("SCOTT:a.b.c.junit_utplsql_test_pkg.nested_context_#1", actual.get("SCOTT:a.b.c.junit_utplsql_test_pkg.nested_context_#1.t1")) + Assert.assertEquals("SCOTT:a.b.c.junit_utplsql_test_pkg.nested_context_#1", actual.get("SCOTT:a.b.c.junit_utplsql_test_pkg.nested_context_#1.t2")) } @Test @@ -489,7 +489,7 @@ class DalTest extends AbstractJdbcTest { val actualEmpty = dao.includes('SCOTT', 'TEST_F1') Assert.assertEquals(#[], actualEmpty) val actual = dao.includes('SCOTT', 'junit_utplsql_test_pkg') - Assert.assertEquals(#['SCOTT.JUNIT_UTPLSQL_TEST_PKG','SCOTT.JUNIT_F','UT3_LATEST_RELEASE.UT_EXPECTATION'].sort, actual.sort) + Assert.assertEquals(#['SCOTT.JUNIT_UTPLSQL_TEST_PKG','SCOTT.JUNIT_F','UT3_LATEST_RELEASE.UT_DATA_VALUE','UT3_LATEST_RELEASE.UT_EXPECTATION'].sort, actual.sort) } @Test