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 2008/01/08 20:42:33 UTC

svn commit: r610108 - in /db/derby/code/trunk/java/testing/org/apache/derbyTesting: functionTests/tests/jdbcapi/ProcedureTest.java junit/JDBC.java

Author: djd
Date: Tue Jan  8 11:42:32 2008
New Revision: 610108

URL: http://svn.apache.org/viewvc?rev=610108&view=rev
Log:
Minor addition of testing to ProcedureTest to assert the return value from Statement.getMoreResults including adding a new utility method JDBC.assertNoMoreResults.

Modified:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/ProcedureTest.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/JDBC.java

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/ProcedureTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/ProcedureTest.java?rev=610108&r1=610107&r2=610108&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/ProcedureTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/ProcedureTest.java Tue Jan  8 11:42:32 2008
@@ -107,8 +107,8 @@
         throws SQLException
     {
         Statement stmt = createStatement();
-        int count = stmt.executeUpdate("CALL RETRIEVE_DYNAMIC_RESULTS(0)");
-        assertEquals("Wrong update count.", 0, count);
+        assertUpdateCount(stmt, 0, "CALL RETRIEVE_DYNAMIC_RESULTS(0)");
+        JDBC.assertNoMoreResults(stmt);
     }
 
     /**
@@ -196,8 +196,8 @@
         PreparedStatement ps =
             prepareStatement("CALL RETRIEVE_DYNAMIC_RESULTS(?)");
         ps.setInt(1, 0);
-        int count = ps.executeUpdate();
-        assertEquals("Wrong update count.", 0, count);
+        assertUpdateCount(ps, 0);
+        JDBC.assertNoMoreResults(ps);
     }
 
     /**
@@ -294,9 +294,8 @@
         CallableStatement cs =
             prepareCall("CALL RETRIEVE_DYNAMIC_RESULTS(?)");
         cs.setInt(1, 0);
-        int count = cs.executeUpdate();
-        assertEquals("Wrong update count.", 0, count);
-
+        assertUpdateCount(cs, 0);
+        JDBC.assertNoMoreResults(cs);
     }
 
     /**
@@ -330,11 +329,10 @@
         ResultSet rs = stmt.executeQuery("CALL PROC_WITH_SIDE_EFFECTS(1)");
         rs.close();
         rollback();
-        ResultSet tableRs = stmt.executeQuery("SELECT * FROM SIMPLE_TABLE");
-        // table should be empty after rollback
-        assertFalse("Side effects from stored procedure not rolled back.",
-                    tableRs.next());
-
+        
+        // Expect Side effects from stored procedure to be rolled back.
+        JDBC.assertEmpty(stmt.executeQuery("SELECT * FROM SIMPLE_TABLE"));
+ 
     }
 
     /**
@@ -347,10 +345,10 @@
         Statement stmt = createStatement();
         stmt.executeUpdate("CALL PROC_WITH_SIDE_EFFECTS(0)");
         rollback();
-        ResultSet rs = stmt.executeQuery("SELECT * FROM SIMPLE_TABLE");
-        // table should be empty after rollback
-        assertFalse("Side effects from stored procedure not rolled back.",
-                    rs.next());
+        
+        // Expect Side effects from stored procedure to be rolled back.
+        JDBC.assertEmpty(stmt.executeQuery("SELECT * FROM SIMPLE_TABLE"));
+ 
     }
 
     /**
@@ -374,9 +372,9 @@
         } catch (SQLException sqle) {
             assertNoResultSetFromExecuteQuery(sqle);
         }
-        ResultSet rs = stmt.executeQuery("SELECT * FROM SIMPLE_TABLE");
-        assertFalse("Side effects from stored procedure not rolled back.",
-                    rs.next());
+
+        // Expect Side effects from stored procedure to be rolled back.
+        JDBC.assertEmpty(stmt.executeQuery("SELECT * FROM SIMPLE_TABLE"));
     }
 
     /**
@@ -401,9 +399,9 @@
         } catch (SQLException sqle) {
             assertMultipleResultsFromExecuteQuery(sqle);
         }
-        ResultSet rs = stmt.executeQuery("SELECT * FROM SIMPLE_TABLE");
-        assertFalse("Side effects from stored procedure not rolled back.",
-                    rs.next());
+        // Expect Side effects from stored procedure to be rolled back.
+        JDBC.assertEmpty(stmt.executeQuery("SELECT * FROM SIMPLE_TABLE"));
+ 
     }
 
     /**
@@ -427,9 +425,9 @@
         } catch (SQLException sqle) {
             assertResultsFromExecuteUpdate(sqle);
         }
-        ResultSet rs = stmt.executeQuery("SELECT * FROM SIMPLE_TABLE");
-        assertFalse("Side effects from stored procedure not rolled back.",
-                    rs.next());
+        // Expect Side effects from stored procedure to be rolled back.
+        JDBC.assertEmpty(stmt.executeQuery("SELECT * FROM SIMPLE_TABLE"));
+ 
     }
 
     /**
@@ -456,9 +454,9 @@
             assertNoResultSetFromExecuteQuery(sqle);
         }
         Statement stmt = createStatement();
-        ResultSet rs = stmt.executeQuery("SELECT * FROM SIMPLE_TABLE");
-        assertFalse("Side effects from stored procedure not rolled back.",
-                    rs.next());
+        // Expect Side effects from stored procedure to be rolled back.
+        JDBC.assertEmpty(stmt.executeQuery("SELECT * FROM SIMPLE_TABLE"));
+ 
     }
 
     /**
@@ -486,10 +484,9 @@
             assertMultipleResultsFromExecuteQuery(sqle);
         }
         Statement stmt = createStatement();
-        ResultSet rs = stmt.executeQuery("SELECT * FROM SIMPLE_TABLE");
-        assertFalse("Side effects from stored procedure not rolled back.",
-                    rs.next());
-    }
+        // Expect Side effects from stored procedure to be rolled back.
+        JDBC.assertEmpty(stmt.executeQuery("SELECT * FROM SIMPLE_TABLE"));
+     }
 
     /**
      * Tests that the effects of executing a stored procedure with
@@ -516,9 +513,9 @@
             assertResultsFromExecuteUpdate(sqle);
         }
         Statement stmt = createStatement();
-        ResultSet rs = stmt.executeQuery("SELECT * FROM SIMPLE_TABLE");
-        assertFalse("Side effects from stored procedure not rolled back.",
-                    rs.next());
+        // Expect Side effects from stored procedure to be rolled back.
+        JDBC.assertEmpty(stmt.executeQuery("SELECT * FROM SIMPLE_TABLE"));
+ 
     }
 
     /**
@@ -548,6 +545,7 @@
     {
         Statement stmt = createStatement();
         stmt.executeUpdate("CALL RETRIEVE_CLOSED_RESULT()");
+        JDBC.assertNoMoreResults(stmt);
     }
 
     /**
@@ -588,6 +586,8 @@
         ps.setString(3, getTestConfiguration().getUserPassword());
         
         ps.executeUpdate();
+        
+        JDBC.assertNoMoreResults(ps);
     }
 
     // UTILITY METHODS
@@ -1013,34 +1013,18 @@
          */
         private void keepCurrentGetMoreResults(CallableStatement cs, ResultSet[] allRS) throws SQLException {
             cs.execute();
-            allRS[0] = cs.getResultSet();
-            allRS[0].next();
-            assertEquals(2,allRS[0].getInt(1));
-            cs.getMoreResults(Statement.KEEP_CURRENT_RESULT);
-            
-            allRS[1] = cs.getResultSet();
-            allRS[1].next();
-            assertEquals(3,allRS[1].getInt(1));
-            cs.getMoreResults(Statement.KEEP_CURRENT_RESULT);
-          
-            allRS[2] = cs.getResultSet();
-            allRS[2].next();
-            assertEquals(4,allRS[2].getInt(1));
-            cs.getMoreResults(Statement.KEEP_CURRENT_RESULT);
-         
-            
-            allRS[3] = cs.getResultSet();
-            allRS[3].next();
-            assertEquals(5,allRS[3].getInt(1));
-            cs.getMoreResults(Statement.KEEP_CURRENT_RESULT);
-            
-
-            
-            allRS[4] = cs.getResultSet();
-            allRS[4].next();
-            assertEquals(6,allRS[4].getInt(1));
-            cs.getMoreResults(Statement.KEEP_CURRENT_RESULT);
             
+            for (int i = 0; i < 5; i++)
+            {
+                allRS[i] = cs.getResultSet();
+                allRS[i].next();
+                assertEquals(2+i, allRS[i].getInt(1));
+                
+                if (i < 4)
+                    assertTrue(cs.getMoreResults(Statement.KEEP_CURRENT_RESULT));
+                else
+                    assertFalse(cs.getMoreResults(Statement.KEEP_CURRENT_RESULT));
+            }            
             
             // resultSets should still be open
             for (int i = 0; i < 5; i++)
@@ -1049,31 +1033,18 @@
 
         private void closeCurrentGetMoreResults(CallableStatement cs, ResultSet[] allRS) throws SQLException {
             cs.execute();
-            allRS[0] = cs.getResultSet();
-            allRS[0].next();
-            assertEquals(2,allRS[0].getInt(1));
-            cs.getMoreResults(Statement.CLOSE_CURRENT_RESULT);
-            
-            allRS[1] = cs.getResultSet();
-            allRS[1].next();
-            assertEquals(3,allRS[1].getInt(1));
-            cs.getMoreResults(Statement.CLOSE_CURRENT_RESULT);
-          
-            allRS[2] = cs.getResultSet();
-            allRS[2].next();
-            assertEquals(4,allRS[2].getInt(1));
-            cs.getMoreResults(Statement.CLOSE_CURRENT_RESULT);
             
-            allRS[3] = cs.getResultSet();
-            allRS[3].next();
-            assertEquals(5,allRS[3].getInt(1));
-            cs.getMoreResults(Statement.CLOSE_CURRENT_RESULT);
-
-            
-            allRS[4] = cs.getResultSet();
-            allRS[4].next();
-            assertEquals(6,allRS[4].getInt(1));
-            cs.getMoreResults(Statement.CLOSE_CURRENT_RESULT);
+            for (int i = 0; i < 5; i++)
+            {
+                allRS[i] = cs.getResultSet();
+                allRS[i].next();
+                assertEquals(2+i, allRS[i].getInt(1));
+                
+                if (i < 4)
+                    assertTrue(cs.getMoreResults(Statement.CLOSE_CURRENT_RESULT));
+                else
+                    assertFalse(cs.getMoreResults(Statement.CLOSE_CURRENT_RESULT));
+            }
             
             // verify resultSets are closed
             for (int i = 0; i < 5; i++)
@@ -1091,31 +1062,19 @@
             // options of getMoreResults().
 
             cs.execute();
-            allRS[0] = cs.getResultSet();
-            allRS[0].next();
-            assertEquals(2,allRS[0].getInt(1));
-            cs.getMoreResults();
-            
-            allRS[1] = cs.getResultSet();
-            allRS[1].next();
-            assertEquals(3,allRS[1].getInt(1));
-            cs.getMoreResults();
-            
-            allRS[2] = cs.getResultSet();
-            allRS[2].next();
-            assertEquals(4,allRS[2].getInt(1));
-            cs.getMoreResults();
-            
-            allRS[3] = cs.getResultSet();
-            allRS[3].next();
-            assertEquals(5,allRS[3].getInt(1));
-            cs.getMoreResults();
-            
-            allRS[4] = cs.getResultSet();
-            allRS[4].next();
-            assertEquals(6,allRS[4].getInt(1));
-            cs.getMoreResults();
             
+            for (int i = 0; i < 5; i++)
+            {
+                allRS[i] = cs.getResultSet();
+                allRS[i].next();
+                assertEquals(2+i, allRS[i].getInt(1));
+                
+                if (i < 4)
+                    assertTrue(cs.getMoreResults());
+                else
+                    assertFalse(cs.getMoreResults());
+            } 
+                        
             // verify resultSets are closed
             for (int i = 0; i < 5; i++)
                 JDBC.assertClosed(allRS[i]);

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/JDBC.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/JDBC.java?rev=610108&r1=610107&r2=610108&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/JDBC.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/JDBC.java Tue Jan  8 11:42:32 2008
@@ -507,6 +507,18 @@
     }
     
     /**
+     * Assert that the statement has no more results. Logic taken
+     * from javadoc for java.sql.Statement.getMoreResults.
+     * @param s Statement holding no results.
+     * @throws SQLException Exception checking results.
+     */
+    public static void assertNoMoreResults(Statement s) throws SQLException
+    {
+        Assert.assertTrue((s.getMoreResults() == false)
+                && (s.getUpdateCount() == -1));
+    }
+    
+    /**
      * Assert that a ResultSet representing generated keys is non-null
      * and of the correct type. This method leaves the ResultSet
      * open and does not fetch any date from it.