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]

Reply via email to