blob: 558e419a9ac869472b42cf33e4b936aaf7066418 [file] [log] [blame]
/*
*
* Derby - Class RowIdNotImplementedTest
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to you 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 org.apache.derbyTesting.functionTests.tests.jdbc4;
import org.apache.derbyTesting.junit.BaseJDBCTestCase;
import org.apache.derbyTesting.junit.TestConfiguration;
import junit.framework.*;
import java.sql.*;
/**
* Test that all methods and functionality related to RowId reflect that it
* has not yet been implemented.
* The tests are written to be run with JDK 1.6.
* All methods that throws SQLException, should utilize the
* SQLFeatureNotSupportedException-subclass. Methods unable to throw
* SQLException, must throw java.lang.UnsupportedOperationException.
* As RowId is implemented, tests demonstrating correctness of the API should
* be moved into the proper test classes (for instance, test updateRowId in
* the test class for ResultSet).
* The reason for specifying all tests here was mainly because there were no
* existing JUnit tests for the various classes implementing RowId methods.
*/
public class RowIdNotImplementedTest
extends BaseJDBCTestCase {
/**
* Create test with given name.
*
* @param name name of test.
*/
public RowIdNotImplementedTest(String name) {
super(name);
}
public void testRowIdInPreparedStatementSetRowId()
throws SQLException {
PreparedStatement pStmt =
prepareStatement("select count(*) from sys.systables");
try {
pStmt.setRowId(1, null);
fail("PreparedStatement.setRowId should not be implemented");
} catch (SQLFeatureNotSupportedException sfnse) {
// Do nothing, we are fine.
}
}
public void testRowIdInCallableStatementGetRowIdInt()
throws SQLException {
CallableStatement cStmt = getCallableStatement();
try {
cStmt.getRowId(1);
fail("CallableStatement.getRowId(int) should not be implemented.");
} catch (SQLFeatureNotSupportedException sfnse) {
// Do nothing, we are fine.
}
}
public void testRowIdInCallableStatementGetRowIdString()
throws SQLException {
CallableStatement cStmt = getCallableStatement();
try {
cStmt.getRowId("some-parameter-name");
fail("CallableStatement.getRowId(String) should not be " +
"implemented.");
} catch (SQLFeatureNotSupportedException sfnse) {
// Do nothing, we are fine.
}
}
public void testRowIdInCallableStatementSetRowId()
throws SQLException {
CallableStatement cStmt = getCallableStatement();
try {
cStmt.setRowId("some-parameter-name", null);
fail("CallableStatement.setRowId should not be implemented");
} catch (SQLFeatureNotSupportedException sfnse) {
// Do nothing, we are fine.
}
}
public void testRowIdInResultSetGetRowIdInt()
throws SQLException {
ResultSet rs = getResultSet();
try {
rs.getRowId(1);
fail("ResultSet.getRowId(int) should not be implemented");
} catch (SQLFeatureNotSupportedException sfnse) {
// Do nothing, we are fine.
}
}
public void testRowIdInResultSetGetRowIdString()
throws SQLException {
ResultSet rs = getResultSet();
try {
rs.getRowId("some-parameter-name");
fail("ResultSet.getRowId(String) should not be implemented");
} catch (SQLFeatureNotSupportedException sfnse) {
// Do nothing, we are fine.
}
}
public void testRowIdInResultSetUpdateRowIdInt()
throws SQLException {
ResultSet rs = getResultSet();
try {
rs.updateRowId(1, null);
fail("ResultSet.updateRowId(int) should not be implemented");
} catch (SQLFeatureNotSupportedException sfnse) {
// Do nothing, we are fine.
}
}
public void testRowIdInResultSetUpdateRowIdString()
throws SQLException {
ResultSet rs = getResultSet();
try {
rs.updateRowId("some-parameter-name", null);
fail("ResultSet.updateRowId(String) should not be implemented");
} catch (SQLFeatureNotSupportedException sfnse) {
// Do nothing, we are fine.
}
}
public void testRowIdInDatabaseMetaDataRowIdLifeTime()
throws SQLException {
DatabaseMetaData meta = getConnection().getMetaData();
RowIdLifetime rowIdLifetime = meta.getRowIdLifetime();
assertEquals("RowIdLifetime should be ROWID_UNSUPPORTED",
RowIdLifetime.ROWID_UNSUPPORTED,
rowIdLifetime);
meta = null;
}
/**
* Create a callable statement.
*
* @return a <code>CallableStatement</code>
* @throws SQLException if creation of CallableStatement fails.
*/
private CallableStatement getCallableStatement()
throws SQLException {
// No need to actuall call a stored procedure.
return prepareCall("values 1");
}
/**
* Create a resultset.
*
* @return a <code>ResultSet</code>
* @throws SQLException if creation of ResultSet fails.
*/
private ResultSet getResultSet()
throws SQLException {
// Create a very simple resultset.
return createStatement().executeQuery("values 1");
}
/**
* Return test suite.
*
* @return test suite.
*/
public static Test suite() {
return TestConfiguration.defaultSuite(RowIdNotImplementedTest.class);
}
} // End class RowIdNotImplementedTest