blob: 01e5d44eb9d07699f2e566618e1894bf4a620c3a [file] [log] [blame]
/*
* 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.harmony.sql.tests.javax.sql.rowset;
import java.io.Serializable;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Types;
import javax.sql.rowset.RowSetMetaDataImpl;
import org.apache.harmony.testframework.serialization.SerializationTest;
import org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert;
import junit.framework.Assert;
import junit.framework.TestCase;
/**
* Test class for javax.sql.rowset.RowSetMetaDataImpl
*
*/
public class RowSetMetaDataImplTest extends TestCase {
private static RowSetMetaDataImpl metaDataImpl = null;
/**
* This comparator is designed for RowSetMetaDataImpl objects whose colCount
* has already been set. Other objects may fail when using it.
*/
private final static SerializableAssert ROWSET_METADATA_COMPARATOR = new SerializableAssert() {
public void assertDeserialized(Serializable initial,
Serializable deserialized) {
try {
RowSetMetaDataImpl initialImpl = (RowSetMetaDataImpl) initial;
RowSetMetaDataImpl deserializedImpl = (RowSetMetaDataImpl) deserialized;
Assert.assertEquals(initialImpl.getColumnCount(),
deserializedImpl.getColumnCount());
Assert.assertEquals(initialImpl.getColumnType(1),
deserializedImpl.getColumnType(1));
} catch (SQLException e) {
fail();
}
}
};
/**
* @tests javax.sql.rowset.RowSetMetaDataImpl#RowSetMetaDataImpl()
*/
public void test_Constructor() {
assertNotNull(metaDataImpl);
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#getColumnCount()}
*/
public void test_getColumnCount() throws SQLException {
assertEquals(0, metaDataImpl.getColumnCount());
try {
metaDataImpl.isAutoIncrement(1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(4);
assertEquals(4, metaDataImpl.getColumnCount());
assertFalse(metaDataImpl.isAutoIncrement(4));
metaDataImpl.setColumnCount(Integer.MAX_VALUE);
assertFalse(metaDataImpl.isAutoIncrement(4));
// assertEquals(Integer.MAX_VALUE, metaDataImpl.getColumnCount());
// RI throws ArrayIndexOutOfBoundsException here, which is a RI's bug
try {
metaDataImpl.isAutoIncrement(5);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setColumnCount(int)}
*/
public void test_setColumnCountI() throws SQLException {
try {
metaDataImpl.setColumnCount(-1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
try {
metaDataImpl.setColumnCount(0);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(18);
assertEquals(18, metaDataImpl.getColumnCount());
metaDataImpl.setAutoIncrement(1, true);
assertTrue(metaDataImpl.isAutoIncrement(1));
// original records have been overwritten
metaDataImpl.setColumnCount(19);
assertEquals(19, metaDataImpl.getColumnCount());
assertFalse(metaDataImpl.isAutoIncrement(1));
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#getCatalogName(int)}
*/
public void test_getCatalogNameI() throws SQLException {
try {
metaDataImpl.getCatalogName(1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(2);
assertEquals("", metaDataImpl.getCatalogName(1));
metaDataImpl.setCatalogName(1, "catalog");
assertEquals("catalog", metaDataImpl.getCatalogName(1));
metaDataImpl.setCatalogName(1, null);
assertEquals("", metaDataImpl.getCatalogName(1));
try {
metaDataImpl.getCatalogName(Integer.MIN_VALUE);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#getColumnClassName(int)}
*/
public void test_getColumnClassNameI() throws SQLException {
try {
metaDataImpl.getColumnClassName(1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(12);
assertEquals("java.lang.String", metaDataImpl.getColumnClassName(12));
metaDataImpl.setColumnTypeName(12, null);
assertEquals("java.lang.String", metaDataImpl.getColumnClassName(12));
metaDataImpl.setColumnType(12, Types.BLOB);
assertEquals("[B", metaDataImpl.getColumnClassName(12));
metaDataImpl.setColumnType(12, Types.FLOAT);
assertEquals("java.lang.Double", metaDataImpl.getColumnClassName(12));
metaDataImpl.setColumnType(12, Types.BIGINT);
assertEquals("java.lang.Long", metaDataImpl.getColumnClassName(12));
metaDataImpl.setColumnType(12, Types.BIT);
assertEquals("java.lang.Boolean", metaDataImpl.getColumnClassName(12));
metaDataImpl.setColumnType(12, Types.DECIMAL);
assertEquals("java.math.BigDecimal", metaDataImpl
.getColumnClassName(12));
metaDataImpl.setColumnType(12, Types.TINYINT);
assertEquals("java.lang.Byte", metaDataImpl.getColumnClassName(12));
try {
metaDataImpl.getColumnClassName(0);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#getColumnDisplaySize(int)}
*/
public void test_getColumnDisplaySizeI() throws SQLException {
try {
metaDataImpl.getColumnDisplaySize(1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(2);
assertEquals(0, metaDataImpl.getColumnDisplaySize(1));
metaDataImpl.setColumnDisplaySize(1, 4);
assertEquals(4, metaDataImpl.getColumnDisplaySize(1));
try {
metaDataImpl.getColumnDisplaySize(-32);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#getColumnLabel(int)}
*/
public void test_getColumnLabelI() throws SQLException {
try {
metaDataImpl.getColumnLabel(1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(3);
assertNull(metaDataImpl.getColumnLabel(1));
metaDataImpl.setColumnLabel(1, null);
assertEquals("", metaDataImpl.getColumnLabel(1));
metaDataImpl.setColumnLabel(1, "err");
assertEquals("err", metaDataImpl.getColumnLabel(1));
try {
metaDataImpl.getColumnLabel(11);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#getColumnName(int)}
*/
public void test_getColumnNameI() throws SQLException {
try {
metaDataImpl.getColumnName(1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(13);
assertNull(metaDataImpl.getColumnName(12));
metaDataImpl.setColumnName(12, null);
assertEquals("", metaDataImpl.getColumnName(12));
metaDataImpl.setColumnName(12, "ColumnName");
assertEquals("ColumnName", metaDataImpl.getColumnName(12));
try {
metaDataImpl.getColumnName(0);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#getColumnType(int)}
*/
public void test_getColumnTypeI() throws SQLException {
try {
metaDataImpl.getColumnType(1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(13);
metaDataImpl.setColumnType(13, Types.ARRAY);
assertEquals(Types.ARRAY, metaDataImpl.getColumnType(13));
try {
metaDataImpl.getColumnType(14);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#getColumnTypeName(int)}
*/
public void test_getColumnTypeNameI() throws SQLException {
try {
metaDataImpl.getColumnTypeName(223);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(21);
metaDataImpl.setColumnType(14, Types.BIGINT);
metaDataImpl.setColumnTypeName(14, null);
assertEquals("", metaDataImpl.getColumnTypeName(14));
metaDataImpl.setColumnTypeName(14, "haha");
assertEquals("haha", metaDataImpl.getColumnTypeName(14));
try {
metaDataImpl.getColumnTypeName(22);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#getPrecision(int)}
*/
public void test_getPrecisionI() throws SQLException {
try {
metaDataImpl.getPrecision(2);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(1);
assertEquals(0, metaDataImpl.getPrecision(1));
metaDataImpl.setPrecision(1, Integer.MAX_VALUE);
assertEquals(Integer.MAX_VALUE, metaDataImpl.getPrecision(1));
try {
metaDataImpl.getPrecision(3);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#getSchemaName(int)}
*/
public void test_getScaleI() throws SQLException {
try {
metaDataImpl.getScale(1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(2);
assertEquals(0, metaDataImpl.getScale(2));
metaDataImpl.setScale(2, Integer.MAX_VALUE);
assertEquals(Integer.MAX_VALUE, metaDataImpl.getScale(2));
try {
metaDataImpl.getScale(3);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#getSchemaName(int)}
*/
public void test_getSchemaNameI() throws SQLException {
try {
metaDataImpl.getSchemaName(352);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(67);
metaDataImpl.setSchemaName(67, null);
assertEquals("", metaDataImpl.getSchemaName(67));
metaDataImpl.setSchemaName(67, "a \u0053");
assertEquals("a S", metaDataImpl.getSchemaName(67));
try {
metaDataImpl.getSchemaName(Integer.MIN_VALUE);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#getTableName(int)}
*/
public void test_getTableNameI() throws SQLException {
try {
metaDataImpl.getTableName(2);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(2);
assertEquals("", metaDataImpl.getTableName(1));
assertEquals("", metaDataImpl.getTableName(2));
metaDataImpl.setTableName(1, "tableName");
assertEquals("tableName", metaDataImpl.getTableName(1));
assertEquals("", metaDataImpl.getTableName(2));
try {
metaDataImpl.getTableName(Integer.MIN_VALUE);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#isAutoIncrement(int)}
*/
public void test_isAutoIncrementI() throws SQLException {
try {
metaDataImpl.isAutoIncrement(1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(3);
assertFalse(metaDataImpl.isAutoIncrement(1));
assertFalse(metaDataImpl.isAutoIncrement(3));
metaDataImpl.setAutoIncrement(3, true);
assertTrue(metaDataImpl.isAutoIncrement(3));
try {
metaDataImpl.isAutoIncrement(-1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
try {
metaDataImpl.isAutoIncrement(4);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#isCaseSensitive(int)}
*/
public void test_isCaseSensitiveI() throws SQLException {
metaDataImpl.setColumnCount(5);
assertFalse(metaDataImpl.isCaseSensitive(2));
assertFalse(metaDataImpl.isCaseSensitive(5));
metaDataImpl.setCaseSensitive(2, true);
assertTrue(metaDataImpl.isCaseSensitive(2));
metaDataImpl.setCaseSensitive(2, false);
assertFalse(metaDataImpl.isCaseSensitive(2));
try {
metaDataImpl.isCaseSensitive(0);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
try {
metaDataImpl.isCaseSensitive(6);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#isCurrency(int)}
*/
public void test_isCurrencyI() throws SQLException {
try {
metaDataImpl.isCurrency(1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(5);
assertFalse(metaDataImpl.isCurrency(1));
metaDataImpl.setCurrency(1, true);
assertTrue(metaDataImpl.isCurrency(1));
metaDataImpl.setCurrency(1, true);
assertTrue(metaDataImpl.isCurrency(1));
try {
metaDataImpl.isCurrency(0);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(6);
assertFalse(metaDataImpl.isCurrency(1));
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#isNullable(int)}
*/
public void test_isNullableI() throws SQLException {
try {
metaDataImpl.isNullable(1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(2);
assertEquals(ResultSetMetaData.columnNoNulls, metaDataImpl
.isNullable(1));
metaDataImpl.setNullable(1, ResultSetMetaData.columnNullableUnknown);
assertEquals(ResultSetMetaData.columnNullableUnknown, metaDataImpl
.isNullable(1));
try {
metaDataImpl.isNullable(3);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#isReadOnly(int)}
*/
public void test_isReadOnlyI() throws SQLException {
try {
metaDataImpl.isReadOnly(1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(11);
assertFalse(metaDataImpl.isReadOnly(1));
assertFalse(metaDataImpl.isReadOnly(11));
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#isWritable(int)}
*/
public void test_isWritableI() throws SQLException {
try {
metaDataImpl.isWritable(3);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(3);
assertTrue(metaDataImpl.isWritable(1));
assertTrue(metaDataImpl.isWritable(3));
assertFalse(metaDataImpl.isReadOnly(3));
try {
metaDataImpl.isWritable(4);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#isDefinitelyWritable(int)}
*/
public void test_isDefinitelyWritableI() throws SQLException {
metaDataImpl.setColumnCount(2);
assertTrue(metaDataImpl.isDefinitelyWritable(1));
assertTrue(metaDataImpl.isDefinitelyWritable(2));
// RI fails here, which does not comply to the spec
try {
metaDataImpl.isDefinitelyWritable(-1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#isSearchable(int)}
*/
public void test_isSearchableI() throws SQLException {
try {
metaDataImpl.isSearchable(Integer.MAX_VALUE);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(1);
assertFalse(metaDataImpl.isSearchable(1));
metaDataImpl.setSearchable(1, true);
assertTrue(metaDataImpl.isSearchable(1));
metaDataImpl.setSearchable(1, false);
assertFalse(metaDataImpl.isSearchable(1));
try {
metaDataImpl.isSearchable(2);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#isSigned(int)}
*/
public void test_isSignedI() throws SQLException {
try {
metaDataImpl.isSigned(2);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(35);
assertFalse(metaDataImpl.isSigned(35));
metaDataImpl.setSigned(35, true);
assertTrue(metaDataImpl.isSigned(35));
metaDataImpl.setSigned(35, false);
assertFalse(metaDataImpl.isSigned(35));
try {
metaDataImpl.isSigned(36);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setAutoIncrement(int, boolean)}
*/
public void test_setAutoIncrementIZ() throws SQLException {
try {
metaDataImpl.setAutoIncrement(1, true);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(2);
assertFalse(metaDataImpl.isAutoIncrement(1));
metaDataImpl.setAutoIncrement(1, false);
assertFalse(metaDataImpl.isAutoIncrement(1));
metaDataImpl.setAutoIncrement(1, true);
assertTrue(metaDataImpl.isAutoIncrement(1));
try {
metaDataImpl.setAutoIncrement(-1, false);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setCaseSensitive(int, boolean)}
*/
public void test_setCaseSensitiveIZ() throws SQLException {
try {
metaDataImpl.setCaseSensitive(2, false);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(9);
assertFalse(metaDataImpl.isCaseSensitive(9));
metaDataImpl.setCaseSensitive(9, false);
assertFalse(metaDataImpl.isCaseSensitive(9));
metaDataImpl.setCaseSensitive(9, true);
assertTrue(metaDataImpl.isCaseSensitive(9));
metaDataImpl.setAutoIncrement(9, false);
assertTrue(metaDataImpl.isCaseSensitive(9));
try {
metaDataImpl.setCaseSensitive(10, true);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setCatalogName(int, String)}
*/
public void test_setCatalogNameILjava_lang_String() throws SQLException {
try {
metaDataImpl.setCatalogName(1, "test");
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(1);
metaDataImpl.setCatalogName(1, "AbC");
assertEquals("AbC", metaDataImpl.getCatalogName(1));
metaDataImpl.setCatalogName(1, null);
assertEquals("", metaDataImpl.getCatalogName(1));
try {
metaDataImpl.setCatalogName(10, null);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setColumnDisplaySize(int, int)}
*/
public void test_setColumnDisplaySizeII() throws SQLException {
try {
metaDataImpl.setColumnDisplaySize(1, 2);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(1);
assertEquals(0, metaDataImpl.getColumnDisplaySize(1));
metaDataImpl.setColumnDisplaySize(1, Integer.MAX_VALUE);
assertEquals(Integer.MAX_VALUE, metaDataImpl.getColumnDisplaySize(1));
try {
metaDataImpl.setColumnDisplaySize(2, 0);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
try {
metaDataImpl.setColumnDisplaySize(2, Integer.MIN_VALUE);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setColumnName(int, String)}
*/
public void test_setColumnNameILjava_lang_String() throws SQLException {
try {
metaDataImpl.setColumnName(1, null);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(4);
assertNull(metaDataImpl.getColumnName(1));
metaDataImpl.setColumnName(1, "ate dsW");
assertEquals("ate dsW", metaDataImpl.getColumnName(1));
metaDataImpl.setColumnName(1, null);
assertEquals("", metaDataImpl.getColumnName(1));
try {
metaDataImpl.setColumnName(5, "exception");
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setColumnLabel(int, String)}
*/
public void test_setColumnLabelILjava_lang_String() throws SQLException {
try {
metaDataImpl.setColumnLabel(1, null);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(3);
assertNull(metaDataImpl.getColumnLabel(3));
metaDataImpl.setColumnLabel(3, null);
assertEquals("", metaDataImpl.getColumnLabel(3));
try {
metaDataImpl.setColumnLabel(4, "exception");
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setColumnType(int, int)}
*/
public void test_setColumnTypeII() throws SQLException {
try {
metaDataImpl.setColumnType(1, Types.BIGINT);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(2);
assertEquals(0, metaDataImpl.getColumnType(1));
metaDataImpl.setColumnType(1, Types.CLOB);
assertEquals(Types.CLOB, metaDataImpl.getColumnType(1));
metaDataImpl.setColumnType(1, Types.BOOLEAN);
assertEquals(Types.BOOLEAN, metaDataImpl.getColumnType(1));
try {
metaDataImpl.setColumnType(1, 66);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
try {
metaDataImpl.setColumnType(3, 58);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
try {
metaDataImpl.setColumnType(2, 59);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setColumnTypeName(int, String)}
*/
public void test_setColumnTypeNameILjava_lang_String() throws SQLException {
try {
metaDataImpl.setColumnTypeName(1, "aa");
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(2);
assertNull(metaDataImpl.getColumnTypeName(2));
metaDataImpl.setColumnTypeName(2, null);
assertEquals("", metaDataImpl.getColumnTypeName(2));
metaDataImpl.setColumnTypeName(2, "");
assertEquals("", metaDataImpl.getColumnTypeName(2));
metaDataImpl.setColumnTypeName(2, "java.lang.String");
assertEquals(0, metaDataImpl.getColumnType(2));
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setCurrency(int, boolean)}
*/
public void test_setCurrencyIZ() throws SQLException {
try {
metaDataImpl.setCurrency(12, false);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(7);
assertFalse(metaDataImpl.isCurrency(4));
metaDataImpl.setCurrency(4, false);
assertFalse(metaDataImpl.isCurrency(4));
metaDataImpl.setCurrency(4, true);
assertTrue(metaDataImpl.isCurrency(4));
try {
metaDataImpl.setCurrency(8, true);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setNullable(int, int)}
*/
public void test_setNullableII() throws SQLException {
try {
metaDataImpl.setNullable(21, 1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(1);
assertEquals(0, metaDataImpl.isNullable(1));
metaDataImpl.setNullable(1, ResultSetMetaData.columnNullable);
assertEquals(ResultSetMetaData.columnNullable, metaDataImpl
.isNullable(1));
try {
metaDataImpl
.setNullable(2, ResultSetMetaData.columnNullableUnknown);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
try {
metaDataImpl.setNullable(2, 3);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setPrecision(int, int)}
*/
public void test_setPrecisionII() throws SQLException {
try {
metaDataImpl.setPrecision(12, 1);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(1);
metaDataImpl.setPrecision(1, 0);
assertEquals(0, metaDataImpl.getPrecision(1));
try {
metaDataImpl.setPrecision(12, Integer.MIN_VALUE);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setScale(int, int)}
*/
public void test_setScaleII() throws SQLException {
try {
metaDataImpl.setScale(34, 5);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(1);
metaDataImpl.setScale(1, 252);
assertEquals(252, metaDataImpl.getScale(1));
try {
metaDataImpl.setScale(1, -23);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
try {
metaDataImpl.setScale(2, Integer.MIN_VALUE);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setSchemaName(int, String)}
*/
public void test_setSchemaNameILjava_lang_String() throws SQLException {
try {
metaDataImpl.setSchemaName(-12, "asw");
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(7);
assertEquals("", metaDataImpl.getSchemaName(3));
metaDataImpl.setSchemaName(3, "schema name");
assertEquals("schema name", metaDataImpl.getSchemaName(3));
metaDataImpl.setSchemaName(3, null);
assertEquals("", metaDataImpl.getSchemaName(3));
try {
metaDataImpl.setSchemaName(Integer.MIN_VALUE, null);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setSearchable(int, boolean)}
*/
public void test_setSearchableIZ() throws SQLException {
try {
metaDataImpl.setSearchable(-22, true);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(8);
assertFalse(metaDataImpl.isSearchable(2));
metaDataImpl.setSearchable(2, true);
assertTrue(metaDataImpl.isSearchable(2));
metaDataImpl.setSearchable(2, false);
assertFalse(metaDataImpl.isSearchable(2));
try {
metaDataImpl.setSearchable(Integer.MIN_VALUE, true);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setSigned(int, boolean)}
*/
public void test_setSignedIZ() throws SQLException {
try {
metaDataImpl.setSigned(34, true);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(12);
assertFalse(metaDataImpl.isSigned(12));
metaDataImpl.setSigned(12, true);
assertTrue(metaDataImpl.isSigned(12));
metaDataImpl.setSigned(12, false);
assertFalse(metaDataImpl.isSigned(12));
try {
metaDataImpl.setSigned(0, true);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests {@link javax.sql.rowset.RowSetMetaDataImpl#setTableName(int, String)}
*/
public void test_setTableNameILjava_lang_String() throws SQLException {
try {
metaDataImpl.setTableName(34, null);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
metaDataImpl.setColumnCount(2);
metaDataImpl.setTableName(2, "test");
assertEquals("test", metaDataImpl.getTableName(2));
metaDataImpl.setTableName(2, null);
assertEquals("", metaDataImpl.getTableName(2));
try {
metaDataImpl.setTableName(-3, null);
fail("should throw SQLException");
} catch (SQLException e) {
// expected
}
}
/**
* @tests serialization/deserialization.
*/
public void test_serialization_self() throws Exception {
RowSetMetaDataImpl impl = new RowSetMetaDataImpl();
impl.setColumnCount(1);
impl.setColumnType(1, Types.CHAR);
SerializationTest.verifySelf(impl, ROWSET_METADATA_COMPARATOR);
}
/**
* @tests serialization/deserialization compatibility with RI.
*/
public void test_serialization_compatibility() throws Exception {
RowSetMetaDataImpl impl = new RowSetMetaDataImpl();
impl.setColumnCount(2);
impl.setColumnType(1, Types.ARRAY);
impl.setColumnType(2, Types.BIGINT);
SerializationTest.verifyGolden(this, impl, ROWSET_METADATA_COMPARATOR);
}
@Override
protected void setUp() throws Exception {
super.setUp();
metaDataImpl = new RowSetMetaDataImpl();
}
@Override
protected void tearDown() throws Exception {
metaDataImpl = null;
super.tearDown();
}
}