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]