You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by dj...@apache.org on 2006/08/18 02:00:20 UTC

svn commit: r432438 - in /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests: tests/jdbcapi/SURBaseTest.java util/BaseJDBCTestCase.java

Author: djd
Date: Thu Aug 17 17:00:20 2006
New Revision: 432438

URL: http://svn.apache.org/viewvc?rev=432438&view=rev
Log:
DERBY-1555 DERBY-1701 (partial) Incremental step in changing the tests that extend
SURBaseTest to use the single connection provided by BaseJDBCTestCase. Added
initialize method to BaseJDBCTestCase to allow tests to have a consistent
initial state for a connection. The SURBaseTest still has its con variable,
will be cleaned up in subsequent commits.

Modified:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURBaseTest.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseJDBCTestCase.java

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURBaseTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURBaseTest.java?rev=432438&r1=432437&r2=432438&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURBaseTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURBaseTest.java Thu Aug 17 17:00:20 2006
@@ -48,6 +48,16 @@
     }
     
     /**
+     * Override the default connection's to ensure it
+     * is always in autocommit false and repeatable
+     * read as a starting point.
+     */
+    protected void initializeConnection(Connection conn) throws SQLException {
+        conn.setAutoCommit(false);
+        conn.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);   
+    }
+    
+    /**
      * Get a JDBC Connection to the Derby database.
      * The autocommit flag is set to false, and the isolation level
      * for the transactions is set to repeatable read.
@@ -56,9 +66,8 @@
         throws SQLException
     {
         final Connection rcon = openDefaultConnection();
-        rcon.setAutoCommit(false);
-        rcon.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
-        return rcon;
+        initializeConnection(rcon);
+       return rcon;
     }
 
     /**
@@ -66,16 +75,9 @@
      */
     public void setUp() throws  Exception {       
         println("SetUp");
-        con = getNewConnection();
-    }
-    
-    /**
-     * Rollback the transaction
-     */
-    public void tearDown() throws Exception {
-        println("TearDown");
-       JDBC.cleanup(con);
-        con = null;
+        // temp save the connection in this class as con
+        // as well as the default connection in the parent
+        con = getXConnection();
     }
     
     /**
@@ -98,8 +100,8 @@
      * updateRow()
      */
     protected void updateTuple(ResultSet rs) throws SQLException {
-        assertTrue("Cannot use updateRow() in autocommit mode", 
-                   !con.getAutoCommit());
+        assertFalse("Cannot use updateRow() in autocommit mode", 
+                   rs.getStatement().getConnection().getAutoCommit());
         int id = rs.getInt(1);
         int a = rs.getInt(2);
         int b = rs.getInt(3);        
@@ -120,7 +122,7 @@
         int b = rs.getInt(3);        
         int newA = a*2 +id + 37;
         int newB = newA + id + 17;
-        PreparedStatement ps = con.
+        PreparedStatement ps = 
             prepareStatement("update T1 set a=?,b=? where current of " +
                              rs.getCursorName());
         ps.setInt(1, newA);

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseJDBCTestCase.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseJDBCTestCase.java?rev=432438&r1=432437&r2=432438&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseJDBCTestCase.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseJDBCTestCase.java Thu Aug 17 17:00:20 2006
@@ -71,7 +71,22 @@
                 return conn;
             conn = null;
         }
-        return conn = getTestConfiguration().openDefaultConnection();
+        conn = getTestConfiguration().openDefaultConnection();
+        initializeConnection(conn);
+        return conn;
+    }
+    
+    /**
+     * Allow a sub-class to initialize a connection to provide
+     * consistent connection state for its tests. Called only
+     * when getConnection() opens a new connection. Default
+     * action is to not modify the connection's state from
+     * the initialization provided by the data source.
+     * @param conn Connection to be intialized
+     * @throws SQLException Error setting the initial state.
+     */
+    protected void initializeConnection(Connection conn) throws SQLException
+    {
     }
     
     /**