001: /*
002: *
003: * Derby - Class StatementTestSetup
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,
015: * software distributed under the License is distributed on an
016: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
017: * either express or implied. See the License for the specific
018: * language governing permissions and limitations under the License.
019: */
020:
021: package org.apache.derbyTesting.functionTests.tests.jdbc4;
022:
023: import org.apache.derbyTesting.junit.BaseJDBCTestCase;
024: import org.apache.derbyTesting.junit.BaseJDBCTestSetup;
025:
026: import junit.framework.Test;
027: import junit.extensions.TestSetup;
028:
029: import java.sql.*;
030:
031: /**
032: * Create the table necessary for running {@link StatementTest}.
033: *
034: * @see StatementTest
035: */
036: public class StatementTestSetup extends BaseJDBCTestSetup {
037:
038: /**
039: * Initialize database schema.
040: * Uses the framework specified by the test harness.
041: *
042: * @see StatementTest
043: */
044: public StatementTestSetup(Test test) {
045: super (test);
046: }
047:
048: /**
049: * Create the table and data needed for the test.
050: *
051: * @throws SQLException if database operations fail.
052: *
053: * @see StatementTest
054: */
055: protected void setUp() throws SQLException {
056: Connection con = getConnection();
057: // Create tables used by the test.
058: Statement stmt = con.createStatement();
059: // See if the table is already there, and if so, delete it.
060: try {
061: stmt.execute("select count(*) from stmtTable");
062: // Only get here is the table already exists.
063: stmt.execute("drop table stmtTable");
064: } catch (SQLException sqle) {
065: // Table does not exist, so we can go ahead and create it.
066: assertEquals(
067: "Unexpected error when accessing non-existing table.",
068: "42X05", sqle.getSQLState());
069: }
070: stmt
071: .execute("create table stmtTable (id int, val varchar(10))");
072: stmt
073: .execute("insert into stmtTable values (1, 'one'),(2,'two')");
074: // Check just to be sure, and to notify developers if the database
075: // contents are changed at a later time.
076: ResultSet rs = stmt
077: .executeQuery("select count(*) from stmtTable");
078: rs.next();
079: assertEquals("Number of rows are not as expected", 2, rs
080: .getInt(1));
081: rs.close();
082: stmt.close();
083: con.commit();
084: }
085:
086: /**
087: * Clean up after the tests.
088: * Deletes the table that was created for the tests.
089: *
090: * @throws SQLException if database operations fail.
091: */
092: protected void tearDown() throws Exception {
093: Connection con = getConnection();
094: Statement stmt = con.createStatement();
095: stmt.execute("drop table stmtTable");
096: stmt.close();
097: con.commit();
098: super .tearDown();
099: }
100:
101: } // End class StatementTestSetup
|