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

Convert Test_PStimedate() -> ApiTests#testTimeDatePrepared()


diffs (153 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
@@ -1024,98 +1024,6 @@ public final class JDBC_API_Tester exten
        }
 
        @Test
-       public void Test_PStimedate() {
-               sb.setLength(0);        // clear the output log buffer
-
-               Statement stmt = null;
-               PreparedStatement pstmt = null;
-               ResultSet rs = null;
-               try {
-                       con.setAutoCommit(false);
-                       // >> false: auto commit should be off now
-                       sb.append("0. 
false\t").append(con.getAutoCommit()).append("\n");
-
-                       stmt = con.createStatement();
-                       int updates = stmt.executeUpdate("CREATE TABLE 
Test_PStimedate (t time, ts timestamp, d date)");
-                       if (updates != 0)
-                               sb.append("1. Expected 0 got 
").append(updates).append(" instead\n");
-
-                       pstmt = con.prepareStatement("INSERT INTO 
Test_PStimedate VALUES (?, ?, ?)");
-                       sb.append("1. empty call...");
-                       try {
-                               // should fail (as no parameters set)
-                               pstmt.execute();
-                               sb.append(" UNexpected PASS!\n");
-                       } catch (SQLException e) {
-                               sb.append(" expected exception\n");
-                       }
-
-                       sb.append("2. inserting a record...");
-                       final java.util.Date d = new java.util.Date();
-                       final long tm = d.getTime();
-                       pstmt.setTime(1, new java.sql.Time(tm));
-                       pstmt.setTimestamp(2, new java.sql.Timestamp(tm));
-                       pstmt.setDate(3, new java.sql.Date(tm));
-
-                       pstmt.executeUpdate();
-                       sb.append(" passed\n");
-
-                       sb.append("3. closing PreparedStatement...");
-                       pstmt.close();
-                       sb.append(" passed\n");
-
-                       sb.append("4. selecting record...");
-                       pstmt = con.prepareStatement("SELECT * FROM 
Test_PStimedate");
-                       rs = pstmt.executeQuery();
-                       sb.append(" passed\n");
-
-                       while (rs != null && rs.next()) {
-                               for (int j = 1; j <= 3; j++) {
-                                       sb.append((j+4)).append(". 
retrieving...");
-                                       Object x = rs.getObject(j);
-                                       boolean matches = false;
-                                       if (x instanceof java.sql.Time) {
-                                               sb.append(" (Time)");
-                                               matches = (new 
java.sql.Time(tm)).toString().equals(x.toString());
-                                       } else if (x instanceof java.sql.Date) {
-                                               sb.append(" (Date)");
-                                               matches = (new 
java.sql.Date(tm)).toString().equals(x.toString());
-                                       } else if (x instanceof 
java.sql.Timestamp) {
-                                               sb.append(" (Timestamp)");
-                                               matches = (new 
java.sql.Timestamp(tm)).toString().equals(x.toString());
-                                       }
-                                       if (matches) {
-                                               sb.append(" passed\n");
-                                       } else {
-                                               sb.append(" FAILED 
(").append(x).append(" is not ").append(d).append(")\n");
-                                       }
-                               }
-                       }
-
-                       con.rollback();
-                       con.setAutoCommit(true);
-                       // >> true: auto commit was just switched on
-                       sb.append("0. 
true\t").append(con.getAutoCommit()).append("\n");
-               } catch (SQLException e) {
-                       sb.append("FAILED: 
").append(e.getMessage()).append("\n");
-               }
-
-               closeStmtResSet(stmt, null);
-               closeStmtResSet(pstmt, rs);
-
-               compareExpectedOutput("Test_PStimedate",
-                       "0. false       false\n" +
-                       "1. empty call... expected exception\n" +
-                       "2. inserting a record... passed\n" +
-                       "3. closing PreparedStatement... passed\n" +
-                       "4. selecting record... passed\n" +
-                       "5. retrieving... (Time) passed\n" +
-                       "6. retrieving... (Timestamp) passed\n" +
-                       "7. retrieving... (Date) passed\n" +
-                       "0. true        true\n");
-       }
-
-       @Test
        public void Test_PStimezone() {
                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
@@ -1270,4 +1270,47 @@ public class ApiTests {
                        }
                }
        }
+
+       @Test
+       public void testTimeDatePrepared() throws SQLException {
+               java.util.Date d = new java.util.Date();    // java.util.Date 
is basically millis since epoch
+               long millis = d.getTime();
+               java.sql.Time sqlTime = new Time(millis);
+               java.sql.Timestamp sqlTimestamp = new Timestamp(millis);
+               java.sql.Date sqlDate = new Date(millis);
+
+               conn.setAutoCommit(false);
+               stmt.execute("DROP TABLE IF EXISTS testtimedate");
+               stmt.execute("CREATE TABLE testtimestamp(t TIME, ts TIMESTAMP, 
d DATE)");
+
+               String insert = "INSERT INTO testtimestamp VALUES (?, ?, ?)";
+               try (PreparedStatement ps = conn.prepareStatement(insert)) {
+                       ps.setTime(1, sqlTime);
+                       ps.setTimestamp(2, sqlTimestamp);
+                       ps.setDate(3, sqlDate);
+                       ps.executeUpdate();
+               }
+
+               String select = "SELECT * FROM testtimestamp";
+               try (PreparedStatement ps = conn.prepareStatement(select); 
ResultSet rs = ps.executeQuery()) {
+                       assertTrue(rs.next());
+
+                       java.sql.Time rsTime = (Time) rs.getObject(1);
+                       java.sql.Timestamp rsTimestamp = (Timestamp) 
rs.getObject(2);
+                       java.sql.Date rsDate = (Date) rs.getObject(3);
+                       // We cannot directly assertEquals(sqlTime, rsTime) 
because
+                       // sqlTime is initialized from the millis of today and 
rsTime
+                       // from the millis of some moment of 1970-01-01.
+                       //
+                       // We do string comparisons instead
+                       assertEquals(sqlTime.toString(), rsTime.toString());
+                       assertEquals(sqlTimestamp.toString(), 
rsTimestamp.toString());
+                       assertEquals(sqlDate.toString(), rsDate.toString());
+
+                       assertFalse(rs.next());
+               }
+
+               conn.rollback();
+               conn.setAutoCommit(true);
+       }
 }
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to