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 km...@apache.org on 2007/03/21 00:43:16 UTC
svn commit: r520662 - in
/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang:
CurrentOfTest.java _Suite.java
Author: kmarsden
Date: Tue Mar 20 16:43:15 2007
New Revision: 520662
URL: http://svn.apache.org/viewvc?view=rev&rev=520662
Log:
DERBY-2422 convert lang/holdCursorjava.java to junit
contributed by Manjula Kutty
Modified:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CurrentOfTest.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CurrentOfTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CurrentOfTest.java?view=diff&rev=520662&r1=520661&r2=520662
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CurrentOfTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CurrentOfTest.java Tue Mar 20 16:43:15 2007
@@ -140,8 +140,17 @@
*/
public void testDelete() throws SQLException {
PreparedStatement select, delete;
- Statement delete2;
+ Statement delete1,delete2;
ResultSet cursor;
+ String tableRows = "select i, c from t for read only";
+
+ delete1 = createStatement();
+ Object[][] expectedRows = new Object[][]{{new String("1956"),new String("hello world")},
+ {new String("456"),new String("hi yourself")},
+ {new String("180"),new String("rubber ducky")},
+ {new String("3"),new String("you are the one")}};
+ JDBC.assertFullResultSet(delete1.executeQuery(tableRows), expectedRows, true);
+
select = prepareStatement("select i, c from t for update");
cursor = select.executeQuery(); // cursor is now open
@@ -159,17 +168,23 @@
+ cursor.getCursorName());
// TEST: delete before the cursor is on a row
assertStatementError("24000", delete);
-
- // TEST: find the cursor during execution and it is on a row
cursor.next();
+ assertEquals(1956, cursor.getInt(1));
+
+ // TEST: find the cursor during execution and it is on a row
assertUpdateCount(delete, 1);
// skip a row and delete another row so that two rows will
// have been removed from the table when we are done.
- cursor.next(); // skip this row
+ // skip this row
cursor.next();
+ assertEquals(456, cursor.getInt(1));
+ cursor.next();
+ assertEquals(180, cursor.getInt(1));
assertUpdateCount(delete, 1);
+
// TEST: delete past the last row
cursor.next();// skip this row
+ assertEquals(3, cursor.getInt(1));
assertFalse(cursor.next());
if (usingEmbedded())
assertStatementError("24000", delete);
@@ -191,6 +206,9 @@
assertStatementError("42X30", delete2,"delete from t where current of myCursor" );
else
assertStatementError("XJ202", delete2,"delete from t where current of myCursor" );
+ expectedRows = new Object[][]{{new String("456"),new String("hi yourself")},
+ {new String("3"),new String("you are the one")}};
+ JDBC.assertFullResultSet(delete1.executeQuery(tableRows), expectedRows, true);
delete.close();
delete2.close();
select.close();
@@ -203,9 +221,9 @@
+ cursor.getCursorName());
assertTrue(cursor.next());
assertUpdateCount(delete, 1);
- delete.close();
-
+ delete.close();
+ delete1.close();
cursor.close();
select.close();
@@ -223,8 +241,9 @@
public void testUpdate() throws SQLException {
PreparedStatement select;
PreparedStatement update;
- Statement update2;
+ Statement select1,update2;
ResultSet cursor;
+ String tableRows = "select i, c from t for read only";
// these are basic tests without a where clause on the select.
// all rows are in and stay in the cursor's set when updated.
@@ -242,6 +261,14 @@
cursor.close();
select.close();
+ //Making sure we have the correct rows in the table to begin with
+ select1 = createStatement();
+ Object[][] expectedRows = new Object[][]{{new String("1956"),new String("hello world")},
+ {new String("456"),new String("hi yourself")},
+ {new String("180"),new String("rubber ducky")},
+ {new String("3"),new String("you are the one")}};
+ JDBC.assertFullResultSet(select1.executeQuery(tableRows), expectedRows, true);
+
select = prepareStatement("select I, C from t for update");
cursor = select.executeQuery(); // cursor is now open
@@ -263,6 +290,7 @@
// TEST: find the cursor during execution and it is on a row
cursor.next();
+ assertEquals(1956,cursor.getInt(1));
assertUpdateCount(update, 1);
// TEST: update an already updated row; expect it to succeed.
@@ -271,11 +299,14 @@
// skip a row and update another row so that two rows will
// have been removed from the table when we are done.
cursor.next(); // skip this row
+ assertEquals(456,cursor.getInt(1));
cursor.next();
+ assertEquals(180,cursor.getInt(1));
assertUpdateCount(update, 1);
// TEST: update past the last row
cursor.next(); // skip this row
+ assertEquals(3,cursor.getInt(1));
assertFalse(cursor.next());
assertStatementError("24000", update);
@@ -289,6 +320,13 @@
update2 = createStatement();
assertStatementError("42X30", update2,"update t set i=1 where current of nosuchcursor");
update2.close();
+
+ //Verifyin we have the correct updated rows in the table at the end
+ expectedRows = new Object[][]{{new String("1976"),new String("Gumby was here")},
+ {new String("456"),new String("hi yourself")},
+ {new String("190"),new String("Gumby was here")},
+ {new String("3"),new String("you are the one")}};
+ JDBC.assertFullResultSet(select1.executeQuery(tableRows), expectedRows, true);
// TEST: attempt to do positioned update before cursor execute'd
// TBD
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java?view=diff&rev=520662&r1=520661&r2=520662
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java Tue Mar 20 16:43:15 2007
@@ -82,6 +82,7 @@
suite.addTest(ScrollCursors2Test.suite());
suite.addTest(NullIfTest.suite());
suite.addTest(InListMultiProbeTest.suite());
+ suite.addTest(CurrentOfTest.suite());
// Add the XML tests, which exist as a separate suite
// so that users can "run all XML tests" easily.