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]