Changeset: 79c96d76ba06 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/79c96d76ba06
Modified Files:
src/test/java/JDBC_API_Tester.java
src/test/java/org/monetdb/jdbc/ApiTests.java
Branch: default
Log Message:
Convert Test_Ctransaction() -> ApiTests#testAutocommitTransaction()
diffs (151 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
@@ -174,106 +174,6 @@ public final class JDBC_API_Tester exten
return isPostMar2025;
}
- @Test
- public void Test_Ctransaction() {
- sb.setLength(0); // clear the output log buffer
-
- try {
- // test commit by checking if a change is visible in
another connection
- sb.append("1. commit...");
- con.commit();
- sb.append("passed");
- } catch (SQLException e) {
- // this means we get what we expect
- sb.append("failed as expected:
").append(e.getMessage());
- }
- sb.append("\n");
-
- try {
- // turn off auto commit
- con.setAutoCommit(false);
- // >> false: we just disabled it
- sb.append("2.
false\t").append(con.getAutoCommit()).append("\n");
-
- // a change would not be visible now
- sb.append("3. commit...");
- con.commit();
- sb.append("passed\n");
-
- sb.append("4. commit...");
- con.commit();
- sb.append("passed\n");
-
- sb.append("5. rollback...");
- con.rollback();
- sb.append("passed");
- } catch (SQLException e) {
- sb.append("FAILED: ").append(e.getMessage());
- }
- sb.append("\n");
-
- Statement stmt = null;
- try {
- // turn on auto commit
- con.setAutoCommit(true);
- // >> false: we just disabled it
- sb.append("6.
true\t").append(con.getAutoCommit()).append("\n");
-
- stmt = con.createStatement();
- sb.append("7. start transaction...");
- stmt.executeUpdate("START TRANSACTION");
- sb.append("passed\n");
-
- sb.append("8. commit...");
- con.commit();
- sb.append("passed\n");
-
- sb.append("9. true\t").append(con.getAutoCommit());
- sb.append("\n");
-
- sb.append("10. start transaction...");
- stmt.executeUpdate("START TRANSACTION");
- sb.append("passed\n");
-
- sb.append("11. rollback...");
- con.rollback();
- sb.append("passed\n");
-
- sb.append("12. true\t").append(con.getAutoCommit());
- } catch (SQLException e) {
- sb.append("FAILED: ").append(e.getMessage());
- }
- sb.append("\n");
-
- try {
- // a commit now should fail
- sb.append("13. commit...");
- con.commit();
- sb.append("passed");
- } catch (SQLException e) {
- // this means we get what we expect
- sb.append("failed as expected:
").append(e.getMessage());
- }
- sb.append("\n");
-
- closeStmtResSet(stmt, null);
-
- compareExpectedOutput("Test_Ctransaction",
- "1. commit...failed as expected: COMMIT: not allowed in
auto commit mode\n" +
- "2. false false\n" +
- "3. commit...passed\n" +
- "4. commit...passed\n" +
- "5. rollback...passed\n" +
- "6. true true\n" +
- "7. start transaction...passed\n" +
- "8. commit...passed\n" +
- "9. true true\n" +
- "10. start transaction...passed\n" +
- "11. rollback...passed\n" +
- "12. true true\n" +
- "13. commit...failed as expected: COMMIT: not allowed
in auto commit mode\n");
- }
-
@Test // CHANGED
public void Test_Driver() {
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
@@ -304,5 +304,37 @@ public class ApiTests {
conn.rollback();
conn.setAutoCommit(true);
}
+
+ @Test
+ public void testAutocommitTransaction() throws SQLException {
+ // NOTE: this whole test seems to be just about autcommit /
commit and rollback.
+ // There are no data changes.
+
+ // commit fails in autocommit mode
+ assertSQLException("not allowed in auto commit mode", () ->
conn.commit());
+
+ // it succeeds when autocommit is off
+ conn.setAutoCommit(false);
+ assertFalse(conn.getAutoCommit());
+ conn.commit();
+ // twice, even (??)
+ conn.commit();
+ // and so does rollback
+ conn.rollback();
+
+ // now we turn autocommit back on and start a transaction
manually
+ conn.setAutoCommit(true);
+ assertTrue(conn.getAutoCommit());
+ stmt.executeUpdate("START TRANSACTION");
+
+ // the jdbc driver realizes that autocommit is now off
+ // (NOTE: this check was not in the original test)
+ assertFalse(conn.getAutoCommit());
+
+ conn.rollback();
+ assertTrue(conn.getAutoCommit());
+
+ assertSQLException("not allowed in auto commit mode", () ->
conn.commit());
+ }
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]