Changeset: a35e93e5cb9a for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/a35e93e5cb9a
Modified Files:
src/test/java/JDBC_API_Tester.java
src/test/java/org/monetdb/jdbc/ApiTests.java
Branch: default
Log Message:
Convert Test_Wrapper() -> ApiTests#testWrapper()
diffs (219 lines):
diff --git a/src/test/java/JDBC_API_Tester.java
b/src/test/java/JDBC_API_Tester.java
--- a/src/test/java/JDBC_API_Tester.java
+++ b/src/test/java/JDBC_API_Tester.java
@@ -1878,136 +1878,6 @@ public final class JDBC_API_Tester exten
}
@Test
- public void Test_Wrapper() {
- sb.setLength(0); // clear the output log buffer
-
- try {
- final String jdbc_pkg = "java.sql.";
- final String monetdb_jdbc_pkg = "org.monetdb.jdbc.";
-
- sb.append("Auto commit is:
").append(con.getAutoCommit()).append("\n");
-
- checkIsWrapperFor("Connection", con, jdbc_pkg,
"Connection");
- checkIsWrapperFor("Connection", con, monetdb_jdbc_pkg,
"MonetConnection");
- checkIsWrapperFor("Connection", con, jdbc_pkg,
"Statement");
- checkIsWrapperFor("Connection", con, monetdb_jdbc_pkg,
"MonetStatement");
-
- DatabaseMetaData dbmd = con.getMetaData();
- checkIsWrapperFor("DatabaseMetaData", dbmd, jdbc_pkg,
"DatabaseMetaData");
- checkIsWrapperFor("DatabaseMetaData", dbmd,
monetdb_jdbc_pkg, "MonetDatabaseMetaData");
- checkIsWrapperFor("DatabaseMetaData", dbmd, jdbc_pkg,
"Statement");
- checkIsWrapperFor("DatabaseMetaData", dbmd,
monetdb_jdbc_pkg, "MonetStatement");
-
- ResultSet rs = dbmd.getSchemas();
- checkIsWrapperFor("ResultSet", rs, jdbc_pkg,
"ResultSet");
- checkIsWrapperFor("ResultSet", rs, monetdb_jdbc_pkg,
"MonetResultSet");
- checkIsWrapperFor("ResultSet", rs, jdbc_pkg,
"Statement");
- checkIsWrapperFor("ResultSet", rs, monetdb_jdbc_pkg,
"MonetStatement");
-
- ResultSetMetaData rsmd = rs.getMetaData();
- checkIsWrapperFor("ResultSetMetaData", rsmd, jdbc_pkg,
"ResultSetMetaData");
- checkIsWrapperFor("ResultSetMetaData", rsmd,
monetdb_jdbc_pkg, "MonetResultSet");
- checkIsWrapperFor("ResultSetMetaData", rsmd,
monetdb_jdbc_pkg, "MonetResultSetMetaData");
- checkIsWrapperFor("ResultSetMetaData", rsmd, jdbc_pkg,
"Statement");
- checkIsWrapperFor("ResultSetMetaData", rsmd,
monetdb_jdbc_pkg, "MonetStatement");
-
- rs.close();
-
- Statement stmt = con.createStatement();
- checkIsWrapperFor("Statement", stmt, jdbc_pkg,
"Statement");
- checkIsWrapperFor("Statement", stmt, monetdb_jdbc_pkg,
"MonetStatement");
- checkIsWrapperFor("Statement", stmt, jdbc_pkg,
"Connection");
- checkIsWrapperFor("Statement", stmt, monetdb_jdbc_pkg,
"MonetConnection");
-
- stmt.close();
-
- PreparedStatement pstmt = con.prepareStatement("SELECT
name FROM sys.tables WHERE system AND name like ?");
- checkIsWrapperFor("PreparedStatement", pstmt, jdbc_pkg,
"PreparedStatement");
- checkIsWrapperFor("PreparedStatement", pstmt,
monetdb_jdbc_pkg, "MonetPreparedStatement");
- checkIsWrapperFor("PreparedStatement", pstmt, jdbc_pkg,
"Statement");
- checkIsWrapperFor("PreparedStatement", pstmt,
monetdb_jdbc_pkg, "MonetStatement");
- checkIsWrapperFor("PreparedStatement", pstmt, jdbc_pkg,
"Connection");
- checkIsWrapperFor("PreparedStatement", pstmt,
monetdb_jdbc_pkg, "MonetConnection");
-
- ParameterMetaData pmd = pstmt.getParameterMetaData();
- checkIsWrapperFor("ParameterMetaData", pmd, jdbc_pkg,
"ParameterMetaData");
- checkIsWrapperFor("ParameterMetaData", pmd,
monetdb_jdbc_pkg, "MonetPreparedStatement");
- checkIsWrapperFor("ParameterMetaData", pmd,
monetdb_jdbc_pkg, "MonetParameterMetaData");
- checkIsWrapperFor("ParameterMetaData", pmd, jdbc_pkg,
"Connection");
- checkIsWrapperFor("ParameterMetaData", pmd,
monetdb_jdbc_pkg, "MonetConnection");
-
- ResultSetMetaData psrsmd = pstmt.getMetaData();
- checkIsWrapperFor("PrepStmt ResultSetMetaData", psrsmd,
jdbc_pkg, "ResultSetMetaData");
- checkIsWrapperFor("PrepStmt ResultSetMetaData", psrsmd,
monetdb_jdbc_pkg, "MonetPreparedStatement");
- checkIsWrapperFor("PrepStmt ResultSetMetaData", psrsmd,
monetdb_jdbc_pkg, "MonetResultSetMetaData");
- checkIsWrapperFor("PrepStmt ResultSetMetaData", psrsmd,
jdbc_pkg, "Connection");
- checkIsWrapperFor("PrepStmt ResultSetMetaData", psrsmd,
monetdb_jdbc_pkg, "MonetConnection");
-
- pstmt.close();
-
- } catch (SQLException e) {
- while ((e = e.getNextException()) != null)
- sb.append("FAILED:
").append(e.getMessage()).append("\n");
- }
-
- compareExpectedOutput("Test_Wrapper", "Auto commit is: true\n" +
- "Connection. isWrapperFor(Connection) returns:
true Called unwrap(). Returned object is not null, so oke\n" +
- "Connection. isWrapperFor(MonetConnection)
returns: true Called unwrap(). Returned object is not null, so oke\n" +
- "Connection. isWrapperFor(Statement) returns:
false\n" +
- "Connection. isWrapperFor(MonetStatement)
returns: false\n" +
- "DatabaseMetaData.
isWrapperFor(DatabaseMetaData) returns: true Called unwrap(). Returned object
is not null, so oke\n" +
- "DatabaseMetaData.
isWrapperFor(MonetDatabaseMetaData) returns: true Called unwrap(). Returned
object is not null, so oke\n" +
- "DatabaseMetaData. isWrapperFor(Statement)
returns: false\n" +
- "DatabaseMetaData. isWrapperFor(MonetStatement)
returns: false\n" +
- "ResultSet. isWrapperFor(ResultSet) returns:
true Called unwrap(). Returned object is not null, so oke\n" +
- "ResultSet. isWrapperFor(MonetResultSet)
returns: true Called unwrap(). Returned object is not null, so oke\n" +
- "ResultSet. isWrapperFor(Statement) returns:
false\n" +
- "ResultSet. isWrapperFor(MonetStatement)
returns: false\n" +
- "ResultSetMetaData.
isWrapperFor(ResultSetMetaData) returns: true Called unwrap(). Returned
object is not null, so oke\n" +
- "ResultSetMetaData.
isWrapperFor(MonetResultSet) returns: false\n" +
- "ResultSetMetaData.
isWrapperFor(MonetResultSetMetaData) returns: true Called unwrap(). Returned
object is not null, so oke\n" +
- "ResultSetMetaData. isWrapperFor(Statement)
returns: false\n" +
- "ResultSetMetaData.
isWrapperFor(MonetStatement) returns: false\n" +
- "Statement. isWrapperFor(Statement) returns:
true Called unwrap(). Returned object is not null, so oke\n" +
- "Statement. isWrapperFor(MonetStatement)
returns: true Called unwrap(). Returned object is not null, so oke\n" +
- "Statement. isWrapperFor(Connection) returns:
false\n" +
- "Statement. isWrapperFor(MonetConnection)
returns: false\n" +
- "PreparedStatement.
isWrapperFor(PreparedStatement) returns: true Called unwrap(). Returned
object is not null, so oke\n" +
- "PreparedStatement.
isWrapperFor(MonetPreparedStatement) returns: true Called unwrap(). Returned
object is not null, so oke\n" +
- "PreparedStatement. isWrapperFor(Statement)
returns: true Called unwrap(). Returned object is not null, so oke\n" +
- "PreparedStatement.
isWrapperFor(MonetStatement) returns: true Called unwrap(). Returned object is
not null, so oke\n" +
- "PreparedStatement. isWrapperFor(Connection)
returns: false\n" +
- "PreparedStatement.
isWrapperFor(MonetConnection) returns: false\n" +
- "ParameterMetaData.
isWrapperFor(ParameterMetaData) returns: true Called unwrap(). Returned
object is not null, so oke\n" +
- "ParameterMetaData.
isWrapperFor(MonetPreparedStatement) returns: false\n" +
- "ParameterMetaData.
isWrapperFor(MonetParameterMetaData) returns: true Called unwrap(). Returned
object is not null, so oke\n" +
- "ParameterMetaData. isWrapperFor(Connection)
returns: false\n" +
- "ParameterMetaData.
isWrapperFor(MonetConnection) returns: false\n" +
- "PrepStmt ResultSetMetaData.
isWrapperFor(ResultSetMetaData) returns: true Called unwrap(). Returned
object is not null, so oke\n" +
- "PrepStmt ResultSetMetaData.
isWrapperFor(MonetPreparedStatement) returns: false\n" +
- "PrepStmt ResultSetMetaData.
isWrapperFor(MonetResultSetMetaData) returns: true Called unwrap(). Returned
object is not null, so oke\n" +
- "PrepStmt ResultSetMetaData.
isWrapperFor(Connection) returns: false\n" +
- "PrepStmt ResultSetMetaData.
isWrapperFor(MonetConnection) returns: false\n");
- }
-
- private void checkIsWrapperFor(String objnm, Wrapper obj, String pkgnm,
String classnm) {
- try {
- Class<?> clazz = Class.forName(pkgnm + classnm);
- boolean isWrapper = obj.isWrapperFor(clazz);
- sb.append(objnm).append(".
isWrapperFor(").append(classnm).append(") returns: ").append(isWrapper);
- if (isWrapper) {
- Object wobj = obj.unwrap(clazz);
- sb.append("\tCalled unwrap(). Returned object
is ").append((wobj != null ? "not null, so oke" : "null !!"));
- }
- sb.append("\n");
- } catch (ClassNotFoundException cnfe) {
- sb.append(cnfe.toString());
- } catch (SQLException se) {
- sb.append(se.getMessage());
- }
- }
-
- @Test
public void bogus_auto_generated_keys() {
sb.setLength(0); // clear the output log buffer
diff --git a/src/test/java/org/monetdb/jdbc/ApiTests.java
b/src/test/java/org/monetdb/jdbc/ApiTests.java
--- a/src/test/java/org/monetdb/jdbc/ApiTests.java
+++ b/src/test/java/org/monetdb/jdbc/ApiTests.java
@@ -1639,4 +1639,75 @@ public class ApiTests {
assertFalse(stmt.getMoreResults());
}
}
+
+ @Test
+ public void testWrapper() throws SQLException {
+ assertTrue(isWrapperFor(conn, java.sql.Connection.class));
+ assertTrue(isWrapperFor(conn,
org.monetdb.jdbc.MonetConnection.class));
+ assertFalse(isWrapperFor(conn, java.sql.Statement.class));
+ assertFalse(isWrapperFor(conn,
org.monetdb.jdbc.MonetStatement.class));
+
+ DatabaseMetaData dbmd = conn.getMetaData();
+ assertTrue(isWrapperFor(dbmd, java.sql.DatabaseMetaData.class));
+ assertTrue(isWrapperFor(dbmd,
org.monetdb.jdbc.MonetDatabaseMetaData.class));
+ assertFalse(isWrapperFor(dbmd, java.sql.Statement.class));
+ assertFalse(isWrapperFor(dbmd,
org.monetdb.jdbc.MonetStatement.class));
+
+ try (ResultSet rs = dbmd.getSchemas()) {
+ assertTrue(isWrapperFor(rs, java.sql.ResultSet.class));
+ assertTrue(isWrapperFor(rs,
org.monetdb.jdbc.MonetResultSet.class));
+ assertFalse(isWrapperFor(rs, java.sql.Statement.class));
+ assertFalse(isWrapperFor(rs,
org.monetdb.jdbc.MonetStatement.class));
+
+ ResultSetMetaData rsmd = rs.getMetaData();
+ assertTrue(isWrapperFor(rsmd,
java.sql.ResultSetMetaData.class));
+ assertFalse(isWrapperFor(rsmd,
org.monetdb.jdbc.MonetResultSet.class));
+ assertTrue(isWrapperFor(rsmd,
org.monetdb.jdbc.MonetResultSetMetaData.class));
+ assertFalse(isWrapperFor(rsmd,
java.sql.Statement.class));
+ assertFalse(isWrapperFor(rsmd,
org.monetdb.jdbc.MonetStatement.class));
+ }
+
+ try (Statement stmt = conn.createStatement()) {
+ assertTrue(isWrapperFor(stmt,
java.sql.Statement.class));
+ assertTrue(isWrapperFor(stmt,
org.monetdb.jdbc.MonetStatement.class));
+ assertFalse(isWrapperFor(stmt,
java.sql.Connection.class));
+ assertFalse(isWrapperFor(stmt,
org.monetdb.jdbc.MonetConnection.class));
+ }
+
+ try (PreparedStatement pstmt = conn.prepareStatement("SELECT
name FROM sys.tables WHERE system AND name like ?")) {
+ assertTrue(isWrapperFor(pstmt,
java.sql.PreparedStatement.class));
+ assertTrue(isWrapperFor(pstmt,
org.monetdb.jdbc.MonetPreparedStatement.class));
+ assertTrue(isWrapperFor(pstmt,
java.sql.Statement.class));
+ assertTrue(isWrapperFor(pstmt,
org.monetdb.jdbc.MonetStatement.class));
+ assertFalse(isWrapperFor(pstmt,
java.sql.Connection.class));
+ assertFalse(isWrapperFor(pstmt,
org.monetdb.jdbc.MonetConnection.class));
+
+ ParameterMetaData pmd = pstmt.getParameterMetaData();
+ assertTrue(isWrapperFor(pmd,
java.sql.ParameterMetaData.class));
+ assertFalse(isWrapperFor(pmd,
org.monetdb.jdbc.MonetPreparedStatement.class));
+ assertTrue(isWrapperFor(pmd,
org.monetdb.jdbc.MonetParameterMetaData.class));
+ assertFalse(isWrapperFor(pmd,
java.sql.Connection.class));
+ assertFalse(isWrapperFor(pmd,
org.monetdb.jdbc.MonetConnection.class));
+
+ ResultSetMetaData psrsmd = pstmt.getMetaData();
+ assertTrue(isWrapperFor(psrsmd,
java.sql.ResultSetMetaData.class));
+ assertFalse(isWrapperFor(psrsmd,
org.monetdb.jdbc.MonetPreparedStatement.class));
+ assertTrue(isWrapperFor(psrsmd,
org.monetdb.jdbc.MonetResultSetMetaData.class));
+ assertFalse(isWrapperFor(psrsmd,
java.sql.Connection.class));
+ assertFalse(isWrapperFor(psrsmd,
org.monetdb.jdbc.MonetConnection.class));
+ }
+ }
+
+ private boolean isWrapperFor(Wrapper wrapper, Class<?> wrappedClass)
throws SQLException {
+ String wrappedClassName = wrappedClass.getName();
+ String contextMessage = "unwrapping " +
wrapper.getClass().getName() + " as " + wrappedClassName;
+
+ if (!wrapper.isWrapperFor(wrappedClass))
+ return false;
+
+ Object obj = wrapper.unwrap(wrappedClass);
+ assertNotNull(obj, contextMessage);
+ assertInstanceOf(wrappedClass, obj, contextMessage);
+ return true;
+ }
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]