/* | |
* 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.commons.dbutils; | |
import java.math.BigInteger; | |
import java.sql.ResultSet; | |
import java.sql.ResultSetMetaData; | |
import java.sql.Timestamp; | |
import java.util.Date; | |
import junit.framework.TestCase; | |
/** | |
* BaseTestCase is the base class for all test cases as well as the "all tests" runner. | |
*/ | |
public class BaseTestCase extends TestCase { | |
private static final String[] columnNames = { "one", "two", "three", "notInBean", "intTest", "integerTest", "nullObjectTest", "nullPrimitiveTest", | |
"notDate", "columnProcessorDoubleTest", null }; | |
/** | |
* The number of columns in the MockResultSet. | |
*/ | |
protected static final int COLS = columnNames.length; | |
protected static final ResultSetMetaData metaData = MockResultSetMetaData.create(columnNames); | |
/** | |
* A Timestamp for test purposes having 9 decimals | |
*/ | |
static final Timestamp ts789456123; | |
static { | |
ts789456123 = new Timestamp(new Date().getTime()); | |
ts789456123.setNanos(789456123); | |
} | |
private static final Object[] row1 = { "1", "2", "THREE", " notInBean ", Integer.valueOf(1), Integer.valueOf(2), null, null, new Date(), | |
BigInteger.valueOf(13), null }; | |
private static final Object[] row2 = { "4", "5", "SIX", " notInBean ", Integer.valueOf(3), Integer.valueOf(4), null, null, ts789456123, | |
BigInteger.valueOf(13), null }; | |
private static final Object[][] rows = { row1, row2 }; | |
/** | |
* The number of rows in the MockResultSet. | |
*/ | |
protected static final int ROWS = rows.length; | |
/** | |
* The ResultSet all test methods will use. | |
*/ | |
private ResultSet rs; | |
/** | |
* A ResultSet with 0 rows. | |
*/ | |
private ResultSet emptyResultSet; | |
/** | |
* Creates a freshly initialized ResultSet. | |
*/ | |
protected ResultSet createMockResultSet() { | |
return MockResultSet.create(metaData, rows); | |
} | |
/** | |
* This is called before each test method so ResultSet will be fresh each time. | |
* | |
* @see junit.framework.TestCase#setUp() | |
*/ | |
@Override | |
protected void setUp() throws Exception { | |
super.setUp(); | |
rs = this.createMockResultSet(); | |
emptyResultSet = MockResultSet.create(metaData, null); | |
} | |
public ResultSet getResultSet() { | |
return this.rs; | |
} | |
public ResultSet getEmptyResultSet() { | |
return this.emptyResultSet; | |
} | |
public void setResultSet(ResultSet resultSet) { | |
this.rs = resultSet; | |
} | |
// Test which allows Eclipse to be run on full project (avoids no tests found) | |
// check that the rows are valid for the column definition | |
public void testCheckDataSizes() { | |
assertEquals("Row 1 must contain correct number of columns", columnNames.length, row1.length); | |
assertEquals("Row 1 must contain correct number of columns", columnNames.length, row2.length); | |
} | |
public void testResultSets() throws Exception { | |
assertFalse("emptyResultSet should be empty", emptyResultSet.next()); | |
// fails in SqlNullCheckedResultSetTest assertTrue("rs should not be empty", rs.next()); | |
} | |
} |