You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by dj...@apache.org on 2008/01/04 01:34:32 UTC
svn commit: r608690 - in
/db/derby/code/trunk/java/testing/org/apache/derbyTesting:
functionTests/tests/lang/LangProcedureTest.java junit/BaseJDBCTestCase.java
Author: djd
Date: Thu Jan 3 16:34:31 2008
New Revision: 608690
URL: http://svn.apache.org/viewvc?rev=608690&view=rev
Log:
Fix bug in assertCallError() that did not validate the SQL state for the expected exception and change assertCallError() to be non-static and use the default connection and thus be inline with other similar methods such as assertCompileError().
Modified:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LangProcedureTest.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/BaseJDBCTestCase.java
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LangProcedureTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LangProcedureTest.java?rev=608690&r1=608689&r2=608690&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LangProcedureTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LangProcedureTest.java Thu Jan 3 16:34:31 2008
@@ -271,7 +271,6 @@
* @throws SQLException
*/
public void testDelayedClassChecking() throws SQLException {
- Connection conn = getConnection();
Statement s = createStatement();
s.execute("create procedure noclass() language java "
@@ -285,10 +284,10 @@
s
.execute("create procedure notvoid() language java "
+ "external name 'java.lang.Runtime.getRuntime' parameter style java");
- assertCallError("42X51", conn, "call noclass()");
- assertCallError("42X50", conn, "call nomethod()");
- assertCallError("42X50", conn, "call notstatic()");
- assertCallError("42X50", conn, "call notvoid()");
+ assertCallError("42X51", "call noclass()");
+ assertCallError("42X50", "call nomethod()");
+ assertCallError("42X50", "call notstatic()");
+ assertCallError("42X50", "call notvoid()");
// Comment from old test: CHECK SYSALIAS
s.execute("drop procedure noclass");
@@ -352,20 +351,19 @@
}
public void testAmbigiousMethods() throws SQLException {
- Connection conn = getConnection();
Statement s = createStatement();
// ambiguous resolution - with result sets
s
.execute("create procedure ambiguous01(p1 INTEGER, p2 CHAR(20)) dynamic result sets 1 language java parameter style java external name 'org.apache.derbyTesting.functionTests.tests.lang.LangProcedureTest.ambiguous1'");
- assertCallError("42X73", conn, "call AMBIGUOUS01(?, ?)");
+ assertCallError("42X73", "call AMBIGUOUS01(?, ?)");
s.execute("drop procedure AMBIGUOUS01");
// ambiguous in defined parameters
s
.execute("create procedure ambiguous02(p1 INTEGER, p2 INTEGER) dynamic result sets 1 language java parameter style java external name 'org.apache.derbyTesting.functionTests.tests.lang.LangProcedureTest.ambiguous2'");
- assertCallError("42X50", conn, "call AMBIGUOUS02(?, ?)");
+ assertCallError("42X50", "call AMBIGUOUS02(?, ?)");
s.execute("drop procedure AMBIGUOUS02");
// verify we can find it with a Java signature
@@ -500,9 +498,9 @@
"procedureColumnIn P2 CHAR" };
checkMatchingProcedures(conn, "IR2", sysaliasDefinition,
dbMetadataDefinition, columnDefinition);
- assertCallError("42Y03", conn, "CALL IR()");
+ assertCallError("42Y03", "CALL IR()");
- CallableStatement ir1 = conn.prepareCall("CALL IR(?)");
+ CallableStatement ir1 = prepareCall("CALL IR(?)");
ir1.setInt(1, 1);
ir1.execute();
@@ -554,9 +552,9 @@
if (!conn.getAutoCommit())
conn.commit();
- assertCallError("38000", conn, "CALL IR2(2, 'no way')");
- assertCallError("07000", conn, "CALL IR2(?, 'no way')");
- assertCallError("07000", conn, "CALL IR2(2, ?)");
+ assertCallError("38000", "CALL IR2(2, 'no way')");
+ assertCallError("07000", "CALL IR2(?, 'no way')");
+ assertCallError("07000", "CALL IR2(2, ?)");
s.execute("drop procedure IR");
s.execute("drop procedure IR2");
@@ -588,10 +586,10 @@
checkMatchingProcedures(conn, "DRS", sysaliasDefinition,
dbMetadataDefinition, columnDefinition);
- assertCallError("42Y03", conn, "CALL DRS()");
- assertCallError("42Y03", conn, "CALL DRS(?,?)");
+ assertCallError("42Y03", "CALL DRS()");
+ assertCallError("42Y03","CALL DRS(?,?)");
- CallableStatement drs1 = conn.prepareCall("CALL DRS(?)");
+ CallableStatement drs1 = prepareCall("CALL DRS(?)");
drs1.setInt(1, 3);
drs1.execute();
@@ -697,14 +695,14 @@
// method with no ResultSet argument.
s
.execute("create procedure irdrs(p1 int) dynamic result sets 1 language java external name 'org.apache.derbyTesting.functionTests.tests.lang.LangProcedureTest.missingDynamicParameter' parameter style JAVA");
- assertCallError("42X50", conn, "CALL IRDRS(?)");
+ assertCallError("42X50", "CALL IRDRS(?)");
s.execute("drop procedure irdrs");
// check that a procedure with dynamic result sets can not resolve to a
// method with an argument that is a ResultSet impl,
s
.execute("create procedure rsi(p1 int) dynamic result sets 1 language java external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.badDynamicParameter' parameter style JAVA");
- assertCallError("42X50", conn, "CALL rsi(?)");
+ assertCallError("42X50", "CALL rsi(?)");
s.execute("drop procedure rsi");
// simple check for a no-arg method that has dynamic result sets but
@@ -1294,7 +1292,7 @@
// an output parameter using a PreparedStatement
if (usingEmbedded())
try {
- PreparedStatement ps = conn.prepareStatement("CALL OP1(?, ?)");
+ prepareStatement("CALL OP1(?, ?)");
fail("FAIL prepare succeeded on OUT param with PreparedStatement");
} catch (SQLException sqle) {
String expectedSQLState = "XJ009";
@@ -1337,7 +1335,7 @@
// check execute via a PreparedStatement fails for use of INOUT
// parameter
try {
- PreparedStatement ps = conn.prepareStatement("CALL OP2(?, ?)");
+ prepareStatement("CALL OP2(?, ?)");
fail("FAIL prepare succeeded on INOUT param with PreparedStatement");
} catch (SQLException sqle) {
String expectedSQLState = "XJ009";
@@ -1956,7 +1954,9 @@
}
// Make sure we throw proper error with network server
// if params are not registered
- testBug5280(conn);
+ assertCallError(
+ usingEmbedded() ? "07004" : "07000",
+ "CALL SQLCONTROL3_0 (?, ?, ?, ?, ?, ?, ?)");
s.execute("DROP TABLE SQLC.SQLCONTROL_DML");
@@ -1972,16 +1972,6 @@
s.close();
}
- public static void testBug5280(Connection conn) throws SQLException {
- String csString = "CALL SQLCONTROL3_0 (?, ?, ?, ?, ?, ?, ?)";
- // Bug 5280 If we don't register the outparams
- // we don't get an error with network server.
- // for (int p = 1; p <= 7; p++) {
- // cs.registerOutParameter(p,Types.VARCHAR);
- // }
- assertCallError("07000", conn, csString);
- }
-
public static void pSMALLINT(short in, short[] inout, short[] out)
throws SQLException {
@@ -2138,8 +2128,6 @@
Connection conn = DriverManager
.getConnection("jdbc:default:connection");
-
- Statement s = conn.createStatement();
String sql = "CALL SQLC.SQLCONTROL2_" + sqlc
+ " (?, ?, ?, ?, ?, ?, ?) ";
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/BaseJDBCTestCase.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/BaseJDBCTestCase.java?rev=608690&r1=608689&r2=608690&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/BaseJDBCTestCase.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/BaseJDBCTestCase.java Thu Jan 3 16:34:31 2008
@@ -939,19 +939,18 @@
* Executes the Callable statement that is expected to fail and verifies
* that it throws the expected SQL exception.
* @param expectedSE The expected SQL exception
- * @param conn The Connection handle
* @param callSQL The SQL to execute
* @throws SQLException
*/
- public static void assertCallError(String expectedSE, Connection conn, String callSQL)
+ public void assertCallError(String expectedSE, String callSQL)
throws SQLException
{
try {
- CallableStatement cs = conn.prepareCall(callSQL);
+ CallableStatement cs = prepareCall(callSQL);
cs.execute();
fail("FAIL - SQL expected to throw exception");
} catch (SQLException se) {
- assertSQLState(expectedSE, se.getSQLState(), se);
+ assertSQLState(expectedSE, se);
}
}
/**