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

Convert Test_PSgeneratedkeys() -> ApiTests#testGeneratedKeys()


diffs (115 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,75 +1024,6 @@ public final class JDBC_API_Tester exten
        }
 
        @Test
-       public void Test_PSgeneratedkeys() {
-               sb.setLength(0);        // clear the output log buffer
-
-               Statement stmt = null;
-               try {
-                       con.setAutoCommit(false);
-                       // >> false: auto commit was just switched off
-                       sb.append("0. 
false\t").append(con.getAutoCommit()).append("\n");
-
-                       stmt = con.createStatement();
-                       stmt.executeUpdate(
-                               "CREATE TABLE psgenkey (" +
-                               "       id       serial," +
-                               "       val      varchar(20)" +
-                               ")");
-                       stmt.close();
-               } catch (SQLException e) {
-                       sb.append("FAILED to CREATE TABLE psgenkey: 
").append(e.getMessage()).append("\n");
-               }
-               closeStmtResSet(stmt, null);
-
-               PreparedStatement pstmt = null;
-               ResultSet keys = null;
-               try {
-                       pstmt = con.prepareStatement(
-                               "INSERT INTO psgenkey (val) VALUES ('this is a 
test')",
-                               Statement.RETURN_GENERATED_KEYS);
-
-                       sb.append("1. inserting 3 records...");
-                       pstmt.executeUpdate();
-                       pstmt.executeUpdate();
-                       pstmt.executeUpdate();
-                       sb.append("success\n");
-
-                       // now get the generated keys
-                       sb.append("2. getting generated keys...");
-                       keys = pstmt.getGeneratedKeys();
-                       if (keys == null) {
-                               sb.append("there are no keys!\n");
-                       } else {
-                               while (keys.next()) {
-                                       sb.append("generated key index: 
").append(keys.getInt(1)).append("\n");
-                               }
-                               if (keys.getStatement() == null) {
-                                       sb.append("ResultSet.getStatement() 
should never return null!\n");
-                               }
-                               keys.close();
-                       }
-                       pstmt.close();
-               } catch (SQLException e) {
-                       sb.append("FAILED: 
").append(e.getMessage()).append("\n");
-               }
-               closeStmtResSet(pstmt, keys);
-
-               try {
-                       con.rollback();
-                       // restore default setting
-                       con.setAutoCommit(true);
-               } catch (SQLException e) {
-                       sb.append("FAILED to rollback: 
").append(e.getMessage()).append("\n");
-               }
-
-               compareExpectedOutput("Test_PSgeneratedkeys",
-                       "0. false       false\n" +
-                       "1. inserting 3 records...success\n" +
-                       "2. getting generated keys...generated key index: 3\n");
-       }
-
-       @Test
        public void Test_PSgetObject() {
                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
@@ -656,4 +656,32 @@ public class ApiTests {
                assertSQLException("unexpected IDENT", () -> 
stmt.executeQuery("DEBUG SELECT 42"));
        }
 
+       @Test
+       public void testGeneratedKeys() throws SQLException {
+               stmt.executeUpdate("DROP TABLE IF EXISTS psgenkey");
+               stmt.executeUpdate("CREATE TABLE psgenkey (id SERIAL, val 
VARCHAR(20))");
+
+               String ins = "INSERT INTO psgenkey(val) VALUES ('this is a 
test')";
+               try (PreparedStatement ps = conn.prepareStatement(ins)) {
+                       ps.executeUpdate();
+                       ps.executeUpdate();
+                       ps.executeUpdate();
+                       int maxId = queryInt("SELECT MAX(id) FROM psgenkey");
+                       try (ResultSet rs = ps.getGeneratedKeys()) {
+                               // only yields the last one
+                               assertTrue(rs.next());
+                               int generatedKey = rs.getInt(1);
+                               assertFalse(rs.next());
+                               assertEquals(maxId, generatedKey);
+
+                               // While we're at it, test 
ResultSet#getStatement
+                               // (not sure why here, but that's ok)
+                               Statement parent = rs.getStatement();
+                               assertNotNull(parent);
+                               assertEquals(ps, parent);
+                       }
+               }
+
+               stmt.executeUpdate("DROP TABLE psgenkey");
+       }
 }
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to