Changeset: 5c88029ac682 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/5c88029ac682
Modified Files:
        src/test/java/JDBC_API_Tester.java
        src/test/java/org/monetdb/jdbc/ApiTests.java
Branch: default
Log Message:

Convert Test_PSsetBytes() -> ApiTests#testSetBytes()


diffs (233 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
@@ -1054,151 +1054,6 @@ public final class JDBC_API_Tester exten
        }
 
        @Test
-       public void Test_PSsetBytes() {
-               sb.setLength(0);        // clear the output log buffer
-
-               PreparedStatement pstmt = null;
-               ResultSet rs = null;
-               try {
-                       sb.append("1 Create table\n");
-                       pstmt = con.prepareStatement("create table t7346(col1 
clob, col2 blob)");
-                       sb.append("  pstmt has ")
-                       .append(pstmt.getMetaData().getColumnCount())
-                       .append(" result columns and ")
-                       
.append(pstmt.getParameterMetaData().getParameterCount())
-                       .append(" parameters\n");
-                       pstmt.execute();
-                       pstmt.close();
-
-                       sb.append("2 Prepare Insert data\n");
-                       pstmt = con.prepareStatement("insert into t7346 
(col1,col2) values(?,?)");
-                       sb.append("  pstmt has ")
-                       .append(pstmt.getMetaData().getColumnCount())
-                       .append(" result columns and ")
-                       
.append(pstmt.getParameterMetaData().getParameterCount())
-                       .append(" parameters\n");
-
-                       String val = "0123456789abcdef";
-                       pstmt.setString(1, val);
-                       pstmt.setBytes(2, val.getBytes(StandardCharsets.UTF_8));
-                       sb.append("3 Insert data row 1\n");
-                       pstmt.execute();
-
-                       val = "~!@#$%^&*()_+`1-=][{}\\|';:,<.>/?";
-                       pstmt.setString(1, val);
-                       pstmt.setBytes(2, val.getBytes(StandardCharsets.UTF_8));
-                       sb.append("4 Insert data row 2\n");
-                       pstmt.execute();
-
-                       val = 
"\u00e0\u004f\u20f0\u0020\u00ea\u003a\u0069\u0010\u00a2\u00d8\u0008\u0001\u002b\u0030\u019c\u129e";
-                       pstmt.setString(1, val);
-                       pstmt.setBytes(2, val.getBytes(StandardCharsets.UTF_8));
-                       sb.append("4 Insert data row 3\n");
-                       pstmt.execute();
-
-                       val = "\\X\\Y\\\\";
-                       pstmt.setString(1, val);
-                       pstmt.setBytes(2, val.getBytes(StandardCharsets.UTF_8));
-                       sb.append("4 Insert data row 4\n");
-                       pstmt.execute();
-
-                       pstmt.close();
-
-                       sb.append("5 Prepare Select data\n");
-                       pstmt = con.prepareStatement("select col1, length(col1) 
as len_col1, col2, length(col2) as len_col2 from t7346");
-                       sb.append("  pstmt has ")
-                       .append(pstmt.getMetaData().getColumnCount())
-                       .append(" result columns and ")
-                       
.append(pstmt.getParameterMetaData().getParameterCount())
-                       .append(" parameters\n");
-                       sb.append("6 Execute Select\n");
-                       rs = pstmt.executeQuery();
-                       if (rs != null) {
-                               sb.append("  rs has ")
-                               .append(rs.getMetaData().getColumnCount())
-                               .append(" result columns\n");
-                               sb.append("7 Show data rows\n");
-                               for (int c = 1; c <= 
rs.getMetaData().getColumnCount(); c++) {
-                                       if (c > 1)
-                                               sb.append("\t");
-                                       
sb.append(rs.getMetaData().getColumnName(c));
-                               }
-                               sb.append("\n");
-                               while (rs.next()) {
-                                       
sb.append(rs.getString("col1")).append("\t")
-                                       
.append(rs.getInt("len_col1")).append("\t")
-                                       
.append(byteArrayToHexStr(rs.getBytes("col2"))).append("\t")
-                                       
.append(rs.getString("col2")).append("\t")
-                                       
.append(rs.getInt("len_col2")).append("\n");
-                               }
-                               rs.close();
-                               rs = null;
-                       }
-                       pstmt.close();
-                       pstmt = null;
-               } catch (SQLException e) {
-                       sb.append("FAILED: 
").append(e.getMessage()).append("\n");
-               }
-
-               closeStmtResSet(pstmt, rs);
-
-               // cleanup created test table
-               try {
-                       sb.append("8 Drop table\n");
-                       pstmt = con.prepareStatement("drop table if exists 
t7346");
-                       sb.append("  pstmt has ")
-                       .append(pstmt.getMetaData().getColumnCount())
-                       .append(" result columns and ")
-                       
.append(pstmt.getParameterMetaData().getParameterCount())
-                       .append(" parameters\n");
-                       pstmt.execute();
-                       pstmt.close();
-                       pstmt = null;
-               } catch (SQLException e) {
-                       sb.append("FAILED: 
").append(e.getMessage()).append("\n");
-               }
-
-               closeStmtResSet(pstmt, rs);
-
-               compareExpectedOutput("Test_PSsetBytes",
-                       "1 Create table\n" +
-                       "  pstmt has 0 result columns and 0 parameters\n" +
-                       "2 Prepare Insert data\n" +
-                       "  pstmt has 0 result columns and 2 parameters\n" +
-                       "3 Insert data row 1\n" +
-                       "4 Insert data row 2\n" +
-                       "4 Insert data row 3\n" +
-                       "4 Insert data row 4\n" +
-                       "5 Prepare Select data\n" +
-                       "  pstmt has 4 result columns and 0 parameters\n" +
-                       "6 Execute Select\n" +
-                       "  rs has 4 result columns\n" +
-                       "7 Show data rows\n" +
-                       "col1   len_col1        col2    len_col2\n" +
-                       "0123456789abcdef       16      
30313233343536373839616263646566        30313233343536373839616263646566        
16\n" +
-                       "~!@#$%^&*()_+`1-=][{}\\|';:,<.>/?      32      
7E21402324255E262A28295F2B60312D3D5D5B7B7D5C7C273B3A2C3C2E3E2F3F        
7E21402324255E262A28295F2B60312D3D5D5B7B7D5C7C273B3A2C3C2E3E2F3F        32\n" +
-                       
"\u00e0\u004f\u20f0\u0020\u00ea\u003a\u0069\u0010\u00a2\u00d8\u0008\u0001\u002b\u0030\u019c\u129e
       16      C3A04FE283B020C3AA3A6910C2A2C39808012B30C69CE18A9E      
C3A04FE283B020C3AA3A6910C2A2C39808012B30C69CE18A9E      25\n" +
-                       "\\X\\Y\\\\     6       5C585C595C5C    5C585C595C5C    
6\n" +
-                       "8 Drop table\n" +
-                       "  pstmt has 0 result columns and 0 parameters\n");
-       }
-
-       static private final char[] HEXES = 
{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
-       private String byteArrayToHexStr(final byte[] bytes) {
-               if (bytes == null)
-                       return null;
-               final int len = bytes.length;
-               final StringBuilder buf = new StringBuilder(len * 2);
-               // convert the bytes into hex codes
-               for (int i = 0; i < len; i++) {
-                       byte b = bytes[i];
-                       buf.append(HEXES[(b & 0xF0) >> 4])
-                          .append(HEXES[(b & 0x0F)]);
-               }
-               return buf.toString();
-       }
-
-       @Test
        public void Test_PSsomeamount() {
                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
@@ -1023,4 +1023,74 @@ public class ApiTests {
 
                stmt.executeUpdate("DROP TABLE table_Test_PSmetadata");
        }
+
+       @Test
+       public void testSetBytes() throws SQLException {
+               stmt.executeUpdate("DROP TABLE IF EXISTS test_setbytes");
+
+               // Let's create with a prepared statement for a change
+               String create = "CREATE TABLE test_setbytes(col1 CLOB, col2 
BLOB, id SERIAL)";
+               try (PreparedStatement ps = conn.prepareStatement(create)) {
+                       assertEquals(0, ps.getMetaData().getColumnCount());
+                       assertEquals(0, 
ps.getParameterMetaData().getParameterCount());
+                       ps.execute();
+               }
+
+               String[] testdata = {
+                               "0123456789abcdef",
+                               "~!@#$%^&*()_+`1-=][{}\\|';:,<.>/?",
+                               
"\u00e0\u004f\u20f0\u0020\u00ea\u003a\u0069\u0010\u00a2\u00d8\u0008\u0001\u002b\u0030\u019c\u129e",
+                               "X\\Y"
+               };
+
+               // insert them
+               String ins = "INSERT INTO test_setbytes(col1, col2) VALUES (?, 
?)";
+               try (PreparedStatement ps = conn.prepareStatement(ins)) {
+                       assertEquals(0, ps.getMetaData().getColumnCount());
+                       assertEquals(2, 
ps.getParameterMetaData().getParameterCount());
+                       for (String val : testdata) {
+                               ps.setString(1, val);
+                               ps.setBytes(2, val.getBytes(UTF_8));
+                               ps.addBatch();
+                       }
+                       ps.executeBatch();
+               }
+
+               // retrieve and compare
+               String sel = "SELECT col1, LENGTH(col1) AS lencol1, col2, 
LENGTH(col2) AS lencol2 FROM test_setbytes ORDER BY id";
+               try (PreparedStatement ps = conn.prepareStatement(sel)) {
+                       assertEquals(4, ps.getMetaData().getColumnCount());
+                       assertEquals(0, 
ps.getParameterMetaData().getParameterCount());
+                       try (ResultSet rs = ps.executeQuery()) {
+                               assertEquals(4, 
rs.getMetaData().getColumnCount());
+
+                               for (String val : testdata) {
+                                       assertTrue(rs.next());
+
+                                       byte[] bin = val.getBytes(UTF_8);
+                                       String hex = toUppercaseHexDigits(bin);
+                                       assertEquals(val, rs.getString("col1"));
+                                       assertEquals(val.length(), 
rs.getInt("lencol1"));
+                                       assertArrayEquals(bin, 
rs.getBytes("col2"));
+                                       assertEquals(hex, rs.getString("col2"));
+                                       assertEquals(bin.length, 
rs.getInt("lencol2"));
+                               }
+                               assertFalse(rs.next());
+                       }
+               }
+
+               stmt.executeUpdate("DROP TABLE test_setbytes");
+       }
+
+       private String toUppercaseHexDigits(byte[] bytes) {
+               StringBuilder sb = new StringBuilder(bytes.length * 2);
+               String digits = "0123456789ABCDEF";
+               for (byte b : bytes) {
+                       int hi = b & 0xF0;
+                       int lo = b & 0x0F;
+                       sb.append(digits.charAt(hi >> 4));
+                       sb.append(digits.charAt(lo));
+               }
+               return sb.toString();
+       }
 }
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to