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

Convert Test_Csavepoints() -> ApiTests#testSavepoints()


diffs (199 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
@@ -175,135 +175,6 @@ public final class JDBC_API_Tester exten
        }
 
        @Test
-       public void Test_Csavepoints() {
-               sb.setLength(0);        // clear the output log buffer
-
-               Statement stmt = null;
-               ResultSet rs = null;
-               try {
-                       // >> true: auto commit should be on by default
-                       sb.append("0. 
true\t").append(con.getAutoCommit()).append("\n");
-
-                       // savepoints require a non-autocommit connection
-                       try {
-                               sb.append("1. savepoint...");
-                               con.setSavepoint();
-                               sb.append("passed !!");
-                       } catch (SQLException e) {
-                               sb.append("expected msg: 
").append(e.getMessage());
-                       }
-                       sb.append("\n");
-
-                       con.setAutoCommit(false);
-                       // >> true: auto commit should be on by default
-                       sb.append("0. 
false\t").append(con.getAutoCommit()).append("\n");
-
-                       sb.append("2. savepoint...");
-                       /* make a savepoint, and discard it */
-                       con.setSavepoint();
-                       sb.append("passed\n");
-
-                       stmt = con.createStatement();
-                       stmt.executeUpdate("CREATE TABLE table_Test_Csavepoints 
( id int, PRIMARY KEY (id) )");
-
-                       sb.append("3. savepoint...");
-                       Savepoint sp2 = con.setSavepoint("empty table");
-                       sb.append("passed\n");
-
-                       rs = stmt.executeQuery("SELECT id FROM 
table_Test_Csavepoints");
-                       int i = 0;
-                       int items = 0;
-                       sb.append("4. table ").append(items).append(" items");
-                       while (rs.next()) {
-                               sb.append(", ").append(rs.getString("id"));
-                               i++;
-                       }
-                       if (i != items) {
-                               sb.append(" FAILED (").append(i).append(")");
-                       }
-                       sb.append(" passed\n");
-
-                       stmt.executeUpdate("INSERT INTO table_Test_Csavepoints 
VALUES (1)");
-                       stmt.executeUpdate("INSERT INTO table_Test_Csavepoints 
VALUES (2)");
-                       stmt.executeUpdate("INSERT INTO table_Test_Csavepoints 
VALUES (3)");
-
-                       sb.append("5. savepoint...");
-                       Savepoint sp3 = con.setSavepoint("three values");
-                       sb.append("passed\n");
-
-                       rs = stmt.executeQuery("SELECT id FROM 
table_Test_Csavepoints");
-                       i = 0;
-                       items = 3;
-                       sb.append("6. table ").append(items).append(" items");
-                       while (rs.next()) {
-                               sb.append(", ").append(rs.getString("id"));
-                               i++;
-                       }
-                       if (i != items) {
-                               sb.append(" FAILED (").append(i).append(")");
-                       }
-                       sb.append(" passed\n");
-
-                       sb.append("7. release...");
-                       con.releaseSavepoint(sp3);
-                       sb.append("passed\n");
-
-                       rs = stmt.executeQuery("SELECT id FROM 
table_Test_Csavepoints");
-                       i = 0;
-                       items = 3;
-                       sb.append("8. table ").append(items).append(" items");
-                       while (rs.next()) {
-                               sb.append(", ").append(rs.getString("id"));
-                               i++;
-                       }
-                       if (i != items) {
-                               sb.append(" FAILED (").append(i).append(") :(");
-                       }
-                       sb.append(" passed\n");
-
-                       sb.append("9. rollback...");
-                       con.rollback(sp2);
-                       sb.append("passed\n");
-
-                       rs = stmt.executeQuery("SELECT id FROM 
table_Test_Csavepoints");
-                       i = 0;
-                       items = 0;
-                       sb.append("10. table ").append(items).append(" items");
-                       while (rs.next()) {
-                               sb.append(", ").append(rs.getString("id"));
-                               i++;
-                       }
-                       if (i != items) {
-                               sb.append(" FAILED (").append(i).append(") :(");
-                       }
-                       sb.append(" passed");
-
-                       con.rollback();
-
-                       // restore auto commit mode
-                       con.setAutoCommit(true);
-               } catch (SQLException e) {
-                       sb.append("FAILED: 
").append(e.getMessage()).append("\n");
-               }
-
-               closeStmtResSet(stmt, rs);
-
-               compareExpectedOutput("Test_Csavepoints",
-                       "0. true        true\n" +
-                       "1. savepoint...expected msg: SAVEPOINT: not allowed in 
auto commit mode\n" +
-                       "0. false       false\n" +
-                       "2. savepoint...passed\n" +
-                       "3. savepoint...passed\n" +
-                       "4. table 0 items passed\n" +
-                       "5. savepoint...passed\n" +
-                       "6. table 3 items, 1, 2, 3 passed\n" +
-                       "7. release...passed\n" +
-                       "8. table 3 items, 1, 2, 3 passed\n" +
-                       "9. rollback...passed\n" +
-                       "10. table 0 items passed");
-       }
-
-       @Test
        public void Test_Ctransaction() {
                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
@@ -89,6 +89,20 @@ public class ApiTests {
                return DriverManager.getConnection(Config.getServerURL());
        }
 
+       private String concatenateColumn(String sep, String query) throws 
SQLException {
+               StringBuilder builder = new StringBuilder();
+               boolean first = true;
+               try (ResultSet rs = stmt.executeQuery(query)) {
+                       while (rs.next()) {
+                               if (!first)
+                                       builder.append(sep);
+                               first = false;
+                               builder.append(rs.getString(1));
+                       }
+               }
+               return builder.toString();
+       }
+
        private int queryInt(String query) throws SQLException {
                try (ResultSet rs = stmt.executeQuery(query)) {
                        assertTrue(rs.next(), query);
@@ -260,5 +274,35 @@ public class ApiTests {
 
                conn.setAutoCommit(true);
        }
+
+       @Test
+       public void testSavepoints() throws SQLException {
+               // savepoints not allowed in autocommit mode
+               assertTrue(conn.getAutoCommit());
+               assertSQLException("SAVEPOINT: not allowed in auto commit", () 
-> conn.setSavepoint());
+
+               conn.setAutoCommit(false);
+               Savepoint savepoint1 = conn.setSavepoint();
+               assertNotNull(savepoint1);
+
+               stmt.executeUpdate("CREATE TABLE test_savepoints(i INT)");
+               Savepoint savepoint2 = conn.setSavepoint("empty table");
+               assertNotNull(savepoint2);
+
+               assertEquals("", concatenateColumn(",", "SELECT i FROM 
test_savepoints"));
+               stmt.executeUpdate("INSERT INTO test_savepoints VALUES (1), 
(2), (3)");
+               Savepoint savepoint3 = conn.setSavepoint("three values");
+               assertNotNull(savepoint3);
+               assertEquals("1,2,3", concatenateColumn(",", "SELECT i FROM 
test_savepoints"));
+
+               conn.releaseSavepoint(savepoint3);
+               assertEquals("1,2,3", concatenateColumn(",", "SELECT i FROM 
test_savepoints"));
+
+               conn.rollback(savepoint2);
+               assertEquals("", concatenateColumn(",", "SELECT i FROM 
test_savepoints"));
+
+               conn.rollback();
+               conn.setAutoCommit(true);
+       }
 }
 
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to