summaryrefslogtreecommitdiffstats
path: root/luni/src/test/java/tests/sql/ResultSetTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'luni/src/test/java/tests/sql/ResultSetTest.java')
-rw-r--r--luni/src/test/java/tests/sql/ResultSetTest.java827
1 files changed, 0 insertions, 827 deletions
diff --git a/luni/src/test/java/tests/sql/ResultSetTest.java b/luni/src/test/java/tests/sql/ResultSetTest.java
deleted file mode 100644
index 9c91468..0000000
--- a/luni/src/test/java/tests/sql/ResultSetTest.java
+++ /dev/null
@@ -1,827 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package tests.sql;
-
-import dalvik.annotation.KnownFailure;
-import dalvik.annotation.TestTargets;
-import dalvik.annotation.TestLevel;
-import dalvik.annotation.TestTargetNew;
-import dalvik.annotation.TestTargetClass;
-import tests.support.DatabaseCreator;
-
-import java.io.IOException;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-/**
- * @author andrea@google.com (Your Name Here)
- *
- */
-@TestTargetClass(ResultSet.class)
-public class ResultSetTest extends SQLTest {
-
- ResultSet target = null;
- ResultSet emptyTarget = null;
- ResultSet scrollableTarget = null;
- ResultSet writableTarget = null;
- Statement stForward = null;
- Statement stScrollable = null;
- Statement stWritable = null;
- final String selectAllAnimals = "select id, name from zoo";
- final String selectEmptyTable = "select * from "+DatabaseCreator.SIMPLE_TABLE1;
- /* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
- @Override
- public void setUp() throws Exception {
- super.setUp();
- try {
- conn.setAutoCommit(false);
- stForward = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,
- ResultSet.CONCUR_READ_ONLY);
- stForward.execute(selectAllAnimals);
- target = stForward.getResultSet();
- assertNotNull(target);
-
- // empty table
- stForward = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,
- ResultSet.CONCUR_READ_ONLY);
- stForward.execute(DatabaseCreator.CREATE_TABLE_SIMPLE1);
- stForward.execute(selectEmptyTable);
- emptyTarget = stForward.getResultSet();
-
- } catch (SQLException e) {
- fail("SQLException was thrown: " + e.getMessage());
- }
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#tearDown()
- */
- public void tearDown() {
- super.tearDown();
- try {
- target.close();
- stForward.close();
- } catch (SQLException e) {
- fail("Error in test setup");
- e.printStackTrace();
- }
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#absolute(int)}.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "absolute",
- args = {int.class}
- )
- public void testAbsolute() {
- try {
- assertTrue(target.isBeforeFirst());
- assertFalse(target.absolute(0));
- assertTrue(target.absolute(1));
- assertTrue(target.isFirst());
- assertTrue(target.absolute(-1));
- assertTrue(target.isLast());
- target.next();
- assertTrue(target.isAfterLast());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#afterLast()}.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "SQLException test fails",
- method = "afterLast",
- args = {}
- )
- @KnownFailure("res.close() does not wrap up")
- public void testAfterLast() {
- try {
- target.afterLast();
- assertTrue(target.isAfterLast());
- assertFalse(target.next());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- try {
- emptyTarget.afterLast();
- assertFalse(emptyTarget.isAfterLast());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
-
- try {
- target.close();
- target.beforeFirst();
- fail("Should get SQLException");
- } catch (SQLException e) {
-
- }
-
-
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#beforeFirst()}.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "SQLException test fails",
- method = "beforeFirst",
- args = {}
- )
- @KnownFailure("statment.close() does not wrap up")
- public void testBeforeFirst() {
-
- try {
- target.beforeFirst();
- assertTrue(target.isBeforeFirst());
- assertTrue(target.next());
- assertFalse(target.isBeforeFirst());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- try {
- emptyTarget.beforeFirst();
- assertFalse(emptyTarget.isBeforeFirst());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
-
- try {
- target.close();
- target.beforeFirst();
- fail("Should get SQLException");
- } catch (SQLException e) {
-
- }
-
-
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#close()}.
- *
- * According to the JDBC spec close has to "Releases this ResultSet
- * object's database and JDBC resources immediately", and this implies
- * the fields should be released as well (so that garbage collection
- * can take place)
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "test immediate release of resources, test fails",
- method = "close",
- args = {}
- )
- @KnownFailure("Resultset.close() does not wrap up")
- public void testClose1() {
- try {
- target.close();
- target.next();
- fail("Should get SQLException");
- } catch (SQLException e) {
- //ok
- }
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#close()}.
- *
- */
- @TestTargetNew(
- level = TestLevel.PARTIAL_COMPLETE,
- notes = "test that exception in one prepared statement does not affect second statement. (Atomicity Rule)",
- method = "close",
- args = {}
- )
- public void testClose() {
- PreparedStatement ps1 = null;
- PreparedStatement ps2 = null;
- try {
-
- Statement s = conn.createStatement();
- s.addBatch("create table t1 (a text);");
-
- s.addBatch("insert into t1 values('abc');");
- s.addBatch("insert into t1 values('def');");
- s.addBatch("insert into t1 values('ghi');");
- s.executeBatch();
- s.close();
-
- conn.commit();
- ps1 = conn.prepareStatement("select * from t1");
- ps2 = conn
- .prepareStatement("select * from t1 whe a like '?000'");
-
- ResultSet rs1 = ps1.executeQuery();
-
- try {
- ResultSet rs2 = ps2.executeQuery();
- while (rs2.next()){
- // do nothing
- }
- fail("Should get SQLException");
- } catch (SQLException sqle) {
- // ok : Division by zero
- }
-
- // Although exception happened on ps2 rs1 should still work
- // Isolation property if ACID rules
-
- while (rs1.next()) {
- // do nothing: switching of rows should be possible
- }
-
- conn.commit();
-
- rs1.close();
- ps1.close();
- ps2.close();
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- } finally {
- try {
- if (ps1 != null) ps1.close();
- if (ps2 != null) ps2.close();
- conn.rollback();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
-
-
-
- /**
- * Test method for {@link java.sql.ResultSet#findColumn(java.lang.String)}.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "findColumn",
- args = {java.lang.String.class}
- )
- public void testFindColumn() {
- try {
- assertEquals(1, target.findColumn("id"));
- assertEquals(2, target.findColumn("name"));
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- try {
- target.findColumn("bla");
- fail("Should get SQLException");
- } catch (SQLException e) {
- // ok
- }
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#first()}.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "SQLException test fails",
- method = "first",
- args = {}
- )
- @KnownFailure("statment.close() does not wrap up")
- public void testtestFirst() {
- try {
- assertFalse(emptyTarget.first());
- assertTrue(target.first());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
-
- try {
- target.close();
- // releases all resources such that it can be finalized!
- target.first();
- fail("Should get SQLException");
- } catch (SQLException e) {
-
- }
-
-
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#isAfterLast()}.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "SQLException test fails",
- method = "isAfterLast",
- args = {}
- )
- @KnownFailure("statment.close() does not wrap up")
- public void testtestIsAfterLast() {
- try {
- assertFalse(target.isAfterLast());
- target.absolute(-1); // last
- target.next();
- assertTrue(target.isAfterLast());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- try {
- assertFalse(emptyTarget.isAfterLast());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
-
- try {
- target.close();
- // releases all resources such that it can be finalized!
- target.isAfterLast();
- fail("Should get SQLException");
- } catch (SQLException e) {
-
- }
-
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#isBeforeFirst()}.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "SQLException test fails",
- method = "isBeforeFirst",
- args = {}
- )
- @KnownFailure("In Second code block assertion fails. statment. "+
- "close() does not wrap up")
- public void testtestIsBeforeFirst() {
- try {
- assertTrue(target.isBeforeFirst());
- assertTrue(target.next());
- assertFalse(target.isBeforeFirst());
- assertTrue(target.isFirst());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
-
- try {
- assertTrue(emptyTarget.isBeforeFirst());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
-
- try {
- target.close();
- // releases all resources such that it can be finalized!
- target.isBeforeFirst();
- fail("Should get SQLException");
- } catch (SQLException e) {
- //ok
- }
-
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#isFirst()}.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "SQLException test fails",
- method = "isFirst",
- args = {}
- )
- @KnownFailure("statment.close() does not wrap up")
- public void testtestIsFirst() {
- try {
- assertFalse(target.isFirst());
- target.first();
- assertTrue(target.isFirst());
- target.next();
- assertFalse(target.isFirst());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- try {
- assertFalse(emptyTarget.isFirst());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
-
- try {
- target.close();
- // releases all resources such that it can be finalized!
- target.isFirst();
- fail("Should get SQLException");
- } catch (SQLException e) {
-
- }
-
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#isLast()}.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "SQLException test fails. Test for empty result set fails",
- method = "isLast",
- args = {}
- )
- @KnownFailure("Second block first assertion fails. Is Last should evaluate "+
- "true if the row on which the cursor is actually provides a result."+
- "statment.close() does not wrap up")
- public void testtestIsLast() {
-
- try {
- assertFalse(target.isLast());
- target.absolute(-1);
- assertTrue(target.isLast());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- //check default value no valid row
- try {
- assertFalse(emptyTarget.isLast());
- assertFalse(emptyTarget.next());
- assertFalse(emptyTarget.isLast());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
-
-
- try {
- target.close();
- target.isLast();
- fail("Should get SQLException");
- } catch (SQLException e) {
- // ok
- }
-
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#last()}.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "SQLException test fails",
- method = "last",
- args = {}
- )
- @KnownFailure("statment.close() does not wrap up")
- public void testtestLast() {
- try {
- assertFalse(target.isLast());
- target.last();
- assertTrue(target.isLast());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
-
- try {
- target.close();
- target.last();
- fail("Should get SQLException");
- } catch (SQLException e) {
- // ok
- }
-
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#next()}.
- * @throws SQLException
- */
- @TestTargetNew(
- level = TestLevel.SUFFICIENT,
- notes = "SQLException checking test fails. Clearing of warnings"+
- " and closed streams not supported.",
- method = "next",
- args = {}
- )
- @KnownFailure("Resultset.close() does not wrap up")
- public void testNext() throws SQLException {
- try {
- //before first - first
- assertTrue(target.next());
- //first - second
- assertTrue(target.next());
- //after last
- assertFalse(target.next());
- assertTrue(target.isAfterLast());
- // one more
- assertFalse(target.next());
-
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- try {
- assertFalse(emptyTarget.next());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- target.close();
- try {
- target.next();
- fail("Exception expected");
- } catch (SQLException e) {
- //ok
- }
-
- }
-
- public void testPrevious() throws SQLException {
- try {
- target.first();
- target.previous();
- assertTrue(target.isBeforeFirst());
-
- target.last();
- target.next();
- target.previous();
- assertFalse(target.isAfterLast());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- target.close();
- try {
- target.previous();
- fail("Exception expected");
- } catch (SQLException e) {
- //ok
- }
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#relative(int)}.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "test fails: no exception is thrown when moving cursor backwards",
- method = "relative",
- args = {int.class}
- )
- @KnownFailure("no exception is thrown when moving cursor backwards"
- +" on forward only statement")
- public void testRelative() {
-
- // forward only
- try {
- int initialRow = target.getRow();
- assertFalse(target.relative(0));
- assertEquals(initialRow, target.getRow());
-
- assertTrue(target.relative(1));
- assertTrue(target.isFirst());
- assertEquals(1, target.getRow());
-
- assertTrue(target.relative(1));
- assertFalse(target.isFirst());
- assertEquals(2, target.getRow());
-
-
- assertFalse(target.relative(2));
-
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
-
- try {
- // should not be able to scroll backwards in forward only RS
- target.relative(-2);
- assertEquals(2,target.getRow());
- fail("Should get SQLException");
- } catch (SQLException e) {
- // ok
- } catch (Exception e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- try {
- assertFalse(emptyTarget.relative(Integer.MAX_VALUE));
- assertTrue(emptyTarget.isAfterLast());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- } catch (Exception e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#relative(int)}.
- * @throws SQLException
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "test fails: does not move before first row on min_value",
- method = "relative",
- args = {int.class}
- )
- @KnownFailure("Scrollable resultSet. Not supported")
- public void testRelativeScrollableResultSet() throws SQLException {
- // scrollable resultSet
- try {
-
- int initialRow = scrollableTarget.getRow();
- assertFalse(scrollableTarget.relative(0));
- assertEquals(initialRow, scrollableTarget.getRow());
-
- assertTrue(scrollableTarget.relative(1));
- assertTrue(scrollableTarget.isFirst());
- assertEquals(1, scrollableTarget.getRow());
-
- assertTrue(scrollableTarget.relative(1));
- assertFalse(scrollableTarget.isFirst());
-
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- try {
- assertEquals(2, scrollableTarget.getRow());
- assertFalse(scrollableTarget.relative(2));
- scrollableTarget.relative(-2);
- assertEquals(2,scrollableTarget.getRow());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- try {
- assertFalse(scrollableTarget.relative(Integer.MIN_VALUE));
- assertTrue(scrollableTarget.isBeforeFirst());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- } catch (Exception e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- stScrollable.close();
- try {
- scrollableTarget.relative(1);
- fail("Exception expected");
- } catch (SQLException e) {
- //ok
- }
- }
-
-
-
- /**
- * Test method for {@link java.sql.ResultSet#updateObject(java.lang.String, java.lang.Object)}.
- */
- @KnownFailure("not supported")
- public void testUpdateObjectStringObject() {
- try {
- writableTarget.next();
- writableTarget.updateObject("family","bird");
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- try {
- target.next();
- target.updateObject("family","bird");
- fail("SQLException was not thrown");
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
- }
-
-
- /**
- * Test method for {@link java.sql.ResultSet#updateString(java.lang.String, java.lang.String)}.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "not supported. Only exception testing. Missing testing for wrong type",
- method = "updateString",
- args = {java.lang.String.class, java.lang.String.class}
- )
- @KnownFailure("Feature not supported")
- public void testUpdateStringStringString() throws Exception {
- try {
- writableTarget.next();
- writableTarget.updateString("family","bird");
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- // non writable target.
- try {
- target.next();
- target.updateString("family","bird");
- fail("SQLException was not thrown");
- } catch (SQLException e) {
- //ok
- }
-
-
- // writable but wrong type
- try {
- target.updateString(1,"test");
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- }
-
- target.close();
-
- // Exception test
- try {
- target.updateString("family","test");
- fail("Exception expected");
- } catch (SQLException e) {
- //ok
- }
- }
-
- /**
- * Test method for {@link java.sql.ResultSet#wasNull()}.
- * Spec sais: if something was read... -> if nothing was read it should be false
- * @throws SQLException
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "failing tests.",
- method = "wasNull",
- args = {}
- )
- @KnownFailure("the default tests, and exception tests fail.")
- public void testWasNull() throws SQLException {
-
- // Check default: select statement executed but no get on target called yet
- // Either false or throw an exception.
- try {
- assertFalse(target.wasNull());
- } catch (SQLException e) {
- //ok
- }
-
-
- try {
- stForward.execute("insert into zoo values(8,null,null);");
- stForward.execute(selectAllAnimals);
- target = stForward.getResultSet();
- assertNotNull(target);
- assertTrue(target.last());
- assertNull(target.getObject(2));
- assertTrue(target.wasNull());
- assertNotNull(target.getObject(1));
- assertFalse(target.wasNull());
- } catch (SQLException e) {
- fail("Unexpected exception: " + e.getMessage());
- e.printStackTrace();
- }
-
- target.close();
- try {
- target.wasNull();
- fail("Exception expected");
- } catch (SQLException e) {
- //ok
- }
- }
-}