Changeset: 72abf7bbe072 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/72abf7bbe072
Modified Files:
src/test/java/JDBC_API_Tester.java
src/test/java/org/monetdb/jdbc/ApiTests.java
Branch: default
Log Message:
Convert bogus_auto_generated_keys() -> ApiTests#testBogusAutoGeneratedKeys()
diffs (121 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
@@ -1877,89 +1877,6 @@ public final class JDBC_API_Tester exten
"ColumnName: GENERATED_KEY ColumnTypeName:
bigint Precision: 19 Scale: 0 ColumnDisplaySize: 20 ColumnType: -5
ColumnClassName: java.lang.Long isNullable: 2 isAutoIncrement: false\n");
}
- @Test
- public void bogus_auto_generated_keys() {
- sb.setLength(0); // clear the output log buffer
-
- Statement stmt = null;
- ResultSet rs = null;
- int upd = 0;
- try {
- stmt = con.createStatement();
- sb.append("1. create table...");
- // create a simple table with an auto-generated key (id)
- upd = stmt.executeUpdate("CREATE TABLE bogus_gen_keys
(\n \"id\" serial,\n \"x\" varchar(12)\n);");
- if (upd != 0)
- sb.append("Wrong return status:
").append(upd).append("\n");
- else
- sb.append("passed\n");
-
- // perform an update, useless, but illustrates the bug,
this time no
- // generated key is reported, which is correct
- sb.append("2. update empty table...");
- upd = stmt.executeUpdate("UPDATE bogus_gen_keys SET
\"x\" = 'bla' WHERE \"id\" = 12;");
- if (upd != 0)
- sb.append("Wrong return status:
").append(upd).append("\n");
- else
- sb.append("passed\n");
-
- // insert some value, should get a generated key
- sb.append("3. insert 1 row ...");
- upd = stmt.executeUpdate("INSERT INTO bogus_gen_keys
(\"x\") VALUES ('boe');");
- if (upd != 1)
- sb.append("Wrong return status:
").append(upd).append("\n");
- else
- sb.append("passed\n");
-
- sb.append("4. show values of inserted row ...");
- rs = stmt.executeQuery("SELECT \"id\", \"x\" from
bogus_gen_keys;");
- if (rs != null && rs.next()) {
- sb.append(" id:
").append(rs.getString(1)).append(" x: ").append(rs.getString(2));
- }
- sb.append("\n");
-
- // update again, we expect NO generated key, but we DO
get one
- sb.append("5. update row 1...");
- upd = stmt.executeUpdate("UPDATE bogus_gen_keys SET
\"x\" = 'bla' WHERE \"id\" = 1;");
- if (upd != 1)
- sb.append("Wrong return status:
").append(upd).append("\n");
- else
- sb.append("passed\n");
-
- sb.append("6. update row 12...");
- upd = stmt.executeUpdate("UPDATE bogus_gen_keys SET
\"x\" = 'bla' WHERE \"id\" = 12;");
- if (upd != 0)
- sb.append("Wrong return status:
").append(upd).append("\n");
- else
- sb.append("passed\n");
- } catch (SQLException e) {
- sb.append("FAILED:
").append(e.getMessage()).append("\n");
- }
-
- // cleanup
- try {
- sb.append("7. drop table...");
- upd = stmt.executeUpdate("DROP TABLE bogus_gen_keys");
- if (upd != 0)
- sb.append("Wrong return status:
").append(upd).append("\n");
- else
- sb.append("passed\n");
- } catch (SQLException e) {
- sb.append("FAILED:
").append(e.getMessage()).append("\n");
- }
-
- closeStmtResSet(stmt, rs);
-
- compareExpectedOutput("bogus_auto_generated_keys",
- "1. create table...passed\n" +
- "2. update empty table...passed\n" +
- "3. insert 1 row ...passed\n" +
- "4. show values of inserted row ... id: 1 x:
boe\n" +
- "5. update row 1...passed\n" +
- "6. update row 12...passed\n" +
- "7. drop table...passed\n");
- }
-
@Test public void BugConcurrent_clients_SF_1504657() {
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
@@ -1710,4 +1710,24 @@ public class ApiTests {
assertInstanceOf(wrappedClass, obj, contextMessage);
return true;
}
+
+ @Test
+ public void testBogusAutoGeneratedKeys() throws SQLException {
+ // The name indicates the test is about generated keys but
+ // I see no calls to Statement#getGeneratedKeys() here.
+ // Don't know what's going on here.
+ startScratchTransaction();
+
+ assertEquals(0, stmt.executeUpdate("CREATE TABLE bogus_gen_keys
(id SERIAL, x VARCHAR(12))"));
+ assertEquals(0, stmt.executeUpdate("UPDATE bogus_gen_keys SET x
= 'bla' WHERE id = 12;"));
+ assertEquals(1, stmt.executeUpdate("INSERT INTO
bogus_gen_keys(x) VALUES ('boe')"));
+ try (ResultSet rs = stmt.executeQuery("SELECT id, x FROM
bogus_gen_keys")) {
+ assertTrue(rs.next());
+ assertEquals("1", rs.getString(1)); // why getString?
+ assertEquals("boe", rs.getString(2));
+ assertFalse(rs.next());
+ }
+ assertEquals(1, stmt.executeUpdate("UPDATE bogus_gen_keys SET x
= 'bla' WHERE id = 1"));
+ assertEquals(0, stmt.executeUpdate("UPDATE bogus_gen_keys SET x
= 'bla' WHERE id = 12"));
+ }
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]