Skip to content

Commit 518e663

Browse files
fixes #22 - cannot run tests from "Other Users" node
1 parent 9d50d9e commit 518e663

File tree

3 files changed

+19
-16
lines changed

3 files changed

+19
-16
lines changed

sqldev/src/main/java/org/utplsql/sqldev/menu/UtplsqlController.xtend

+6-2
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,15 @@ class UtplsqlController implements Controller {
6363
if (preferences.checkRunUtplsqlTest) {
6464
val node = context.node
6565
var String connectionName = null;
66+
var String owner = null;
6667
if (node instanceof DatabaseSourceNode) {
6768
connectionName = node.connectionName
69+
owner = node.owner
6870
} else if (view instanceof Worksheet) {
6971
connectionName = view.connectionName
7072
}
7173
logger.fine('''connectionName: «connectionName»''')
72-
val parser = new UtplsqlParser(component.text, Connections.instance.getConnection(connectionName))
74+
val parser = new UtplsqlParser(component.text, Connections.instance.getConnection(connectionName), owner)
7375
if (!parser.getPathAt(component.caretPosition).empty) {
7476
action.enabled = true
7577
}
@@ -145,14 +147,16 @@ class UtplsqlController implements Controller {
145147
val component = view.defaultFocusComponent
146148
if (component instanceof JEditorPane) {
147149
var String connectionName = null;
150+
var String owner = null;
148151
if (node instanceof DatabaseSourceNode) {
149152
connectionName = node.connectionName
153+
owner = node.owner
150154
} else if (view instanceof Worksheet) {
151155
connectionName = view.connectionName
152156
}
153157
logger.fine('''connectionName: «connectionName»''')
154158
val preferences = PreferenceModel.getInstance(Preferences.preferences)
155-
val parser = new UtplsqlParser(component.text, if (preferences.checkRunUtplsqlTest) {Connections.instance.getConnection(connectionName)} else {null})
159+
val parser = new UtplsqlParser(component.text, if (preferences.checkRunUtplsqlTest) {Connections.instance.getConnection(connectionName)} else {null}, owner)
156160
val position = component.caretPosition
157161
val path = parser.getPathAt(position)
158162
val utPlsqlWorksheet = new UtplsqlWorksheet(path, connectionName)

sqldev/src/main/java/org/utplsql/sqldev/parser/UtplsqlParser.xtend

+10-11
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,22 @@ import org.utplsql.sqldev.model.parser.PlsqlObject
2424
import org.utplsql.sqldev.model.parser.Unit
2525

2626
class UtplsqlParser {
27+
private String owner
2728
private String plsql
2829
private String plsqlReduced
2930
private ArrayList<PlsqlObject> objects = new ArrayList<PlsqlObject>
3031
private ArrayList<Unit> units = new ArrayList<Unit>
3132

32-
new(String plsql, Connection conn) {
33+
new(String plsql, Connection conn, String owner) {
3334
setPlsql(plsql)
3435
setPlsqlReduced
3536
populateObjects
3637
populateUnits
37-
processAnnotations(conn)
38+
processAnnotations(conn, owner)
3839
}
3940

4041
new(String plsql) {
41-
this(plsql, null)
42+
this(plsql, null, null)
4243
}
4344

4445
/**
@@ -112,13 +113,14 @@ class UtplsqlParser {
112113
}
113114
}
114115

115-
private def processAnnotations(Connection conn) {
116+
private def processAnnotations(Connection conn, String owner) {
117+
this.owner = owner
116118
if (conn !== null) {
117119
val dao = new UtplsqlDao(conn)
118120
if (dao.utAnnotationManagerInstalled) {
119121
for (o : objects) {
120-
val segments = Arrays.asList(o.name.fixName.split("\\."))
121-
val annotations = dao.annotations(conn.schema, segments.last.toUpperCase)
122+
val segments = Arrays.asList(o.name.fixName.split("\\."))
123+
val annotations = dao.annotations(if (owner !== null) {owner} else {conn.schema}, segments.last.toUpperCase)
122124
if (annotations.findFirst[it.name == "suite"] !== null) {
123125
o.annotations = annotations
124126
}
@@ -191,11 +193,8 @@ class UtplsqlParser {
191193
var objectName = getObjectNameAt(position)
192194
if (!objectName.empty) {
193195
var unitName = getUnitNameAt(position)
194-
if (unitName.empty) {
195-
return objectName.fixName
196-
} else {
197-
return '''«objectName.fixName».«unitName.fixName»'''
198-
}
196+
val path = '''«IF owner !== null»«owner».«ENDIF»«objectName.fixName»«IF !unitName.empty».«unitName.fixName»«ENDIF»'''
197+
return path
199198
}
200199
return ""
201200
}

sqldev/src/test/java/org/utplsql/sqldev/tests/UtplsqlParserTest.xtend

+3-3
Original file line numberDiff line numberDiff line change
@@ -111,17 +111,17 @@ class UtplsqlParserTest extends AbstractJdbcTest {
111111
FUNCTION f (in_p1 INTEGER) RETURN INTEGER;
112112
END pkg;
113113
'''
114-
var parser = new UtplsqlParser(plsql, dataSource.connection)
114+
var parser = new UtplsqlParser(plsql, dataSource.connection, null)
115115
Assert.assertEquals(0, parser.getObjects.size)
116116
Assert.assertEquals(0, parser.getUnits.size)
117117
jdbcTemplate.execute(plsql)
118-
parser = new UtplsqlParser(plsql, dataSource.connection)
118+
parser = new UtplsqlParser(plsql, dataSource.connection, null)
119119
Assert.assertEquals(1, parser.getObjects.size)
120120
Assert.assertEquals(1, parser.getUnits.size)
121121
for (stmt : getStatements(sqlScript)) {
122122
jdbcTemplate.execute(stmt)
123123
}
124-
parser = new UtplsqlParser(sqlScript, dataSource.connection)
124+
parser = new UtplsqlParser(sqlScript, dataSource.connection, null)
125125
Assert.assertEquals(2, parser.getObjects.size)
126126
Assert.assertEquals(2, parser.getUnits.size)
127127
Assert.assertEquals("pkg.p", parser.getPathAt(13,1))

0 commit comments

Comments
 (0)