001: /*
002:
003: Derby - Class org.apache.derbyTesting.functionTests.tests.jdbc4.ParameterMetaDataWrapperTest
004:
005: Licensed to the Apache Software Foundation (ASF) under one or more
006: contributor license agreements. See the NOTICE file distributed with
007: this work for additional information regarding copyright ownership.
008: The ASF licenses this file to you under the Apache License, Version 2.0
009: (the "License"); you may not use this file except in compliance with
010: the License. You may obtain a copy of the License at
011:
012: http://www.apache.org/licenses/LICENSE-2.0
013:
014: Unless required by applicable law or agreed to in writing, software
015: distributed under the License is distributed on an "AS IS" BASIS,
016: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: See the License for the specific language governing permissions and
018: limitations under the License.
019:
020: */
021: package org.apache.derbyTesting.functionTests.tests.jdbc4;
022:
023: import java.sql.*;
024: import javax.sql.*;
025: import junit.framework.*;
026:
027: import org.apache.derbyTesting.junit.BaseJDBCTestCase;
028:
029: /**
030: * Tests of the <code>java.sql.ParameterMetaData</code> JDBC40 API
031: */
032: public class ParameterMetaDataWrapperTest extends BaseJDBCTestCase {
033:
034: //Default PreparedStatement used by the tests
035: private PreparedStatement ps = null;
036: //Default ParameterMetaData object used by the tests
037: private ParameterMetaData pmd = null;
038:
039: /**
040: * Create a test with the given name
041: *
042: * @param name String name of the test
043: */
044: public ParameterMetaDataWrapperTest(String name) {
045: super (name);
046: }
047:
048: /**
049: * Create a default Prepared Statement and connection.
050: *
051: * @throws SQLException if creation of connection or callable statement
052: * fail.
053: */
054: protected void setUp() throws SQLException {
055: ps = prepareStatement("values 1");
056: pmd = ps.getParameterMetaData();
057: }
058:
059: /**
060: * Close default Prepared Statement and connection.
061: *
062: * @throws SQLException if closing of the connection or the callable
063: * statement fail.
064: */
065: protected void tearDown() throws Exception {
066: if (ps != null && !ps.isClosed())
067: ps.close();
068:
069: super .tearDown();
070: }
071:
072: public void testIsWrapperForParameterMetaData() throws SQLException {
073: assertTrue(pmd.isWrapperFor(ParameterMetaData.class));
074: }
075:
076: public void testUnwrapParameterMetaData() throws SQLException {
077: ParameterMetaData pmd2 = pmd.unwrap(ParameterMetaData.class);
078: assertSame("Unwrap returned wrong object.", pmd, pmd2);
079: }
080:
081: public void testIsNotWrapperForResultSet() throws SQLException {
082: assertFalse(pmd.isWrapperFor(ResultSet.class));
083: }
084:
085: public void testUnwrapResultSet() {
086: try {
087: ResultSet rs = pmd.unwrap(ResultSet.class);
088: fail("Unwrap didn't fail.");
089: } catch (SQLException e) {
090: assertSQLState("XJ128", e);
091: }
092: }
093:
094: /**
095: * Return suite with all tests of the class.
096: */
097: public static Test suite() {
098: return (new TestSuite(ParameterMetaDataWrapperTest.class,
099: "ParameterMetaDataWrapperTest suite"));
100: }
101: }
|