/* * Copyright 1999-2015 dangdang.com. * <p> * Licensed 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. * </p> */ package com.dangdang.ddframe.rdb.sharding.jdbc; import org.junit.Before; import org.junit.Test; import javax.sql.rowset.RowSetMetaDataImpl; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Types; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; public class GeneratedKeysResultSetMetaDataTest { private ResultSetMetaData actualMetaData; @Before public void init() throws SQLException { actualMetaData = GeneratedKeysResultSetTest.createMock().getMetaData(); } @Test public void getColumnCount() throws Exception { assertThat(actualMetaData.getColumnCount(), is(2)); } @Test public void isAutoIncrement() throws Exception { assertTrue(actualMetaData.isAutoIncrement(1)); assertTrue(actualMetaData.isAutoIncrement(2)); } @Test public void isCaseSensitive() throws Exception { assertTrue(actualMetaData.isCaseSensitive(1)); assertTrue(actualMetaData.isCaseSensitive(2)); } @Test public void isSearchable() throws Exception { assertFalse(actualMetaData.isSearchable(1)); assertFalse(actualMetaData.isSearchable(2)); } @Test public void isCurrency() throws Exception { assertFalse(actualMetaData.isCurrency(1)); assertFalse(actualMetaData.isCurrency(2)); } @Test public void isNullable() throws Exception { assertEquals(actualMetaData.isNullable(1), ResultSetMetaData.columnNoNulls); assertEquals(actualMetaData.isNullable(2), ResultSetMetaData.columnNoNulls); } @Test public void isSigned() throws Exception { assertTrue(actualMetaData.isSigned(1)); assertTrue(actualMetaData.isSigned(2)); } @Test public void getColumnDisplaySize() throws Exception { assertEquals(actualMetaData.getColumnDisplaySize(1), 0); assertEquals(actualMetaData.getColumnDisplaySize(2), 0); } @Test public void getColumnLabel() throws Exception { assertThat(actualMetaData.getColumnLabel(1), is("order_id")); assertThat(actualMetaData.getColumnLabel(2), is("order_no")); } @Test public void getColumnName() throws Exception { assertThat(actualMetaData.getColumnName(1), is("order_id")); assertThat(actualMetaData.getColumnName(2), is("order_no")); } @Test public void getSchemaName() throws Exception { assertThat(actualMetaData.getSchemaName(1), is("")); assertThat(actualMetaData.getSchemaName(2), is("")); } @Test public void getPrecision() throws Exception { assertEquals(actualMetaData.getPrecision(1), 0); assertEquals(actualMetaData.getPrecision(2), 0); } @Test public void getScale() throws Exception { assertEquals(actualMetaData.getScale(1), 0); assertEquals(actualMetaData.getScale(2), 0); } @Test public void getTableName() throws Exception { assertThat(actualMetaData.getTableName(1), is("")); assertThat(actualMetaData.getTableName(2), is("")); } @Test public void getCatalogName() throws Exception { assertThat(actualMetaData.getCatalogName(1), is("")); assertThat(actualMetaData.getCatalogName(2), is("")); } @Test public void getColumnType() throws Exception { assertEquals(actualMetaData.getColumnType(1), Types.BIGINT); assertEquals(actualMetaData.getColumnType(2), Types.VARCHAR); } @Test public void getColumnTypeName() throws Exception { assertThat(actualMetaData.getColumnTypeName(1), is("")); assertThat(actualMetaData.getColumnTypeName(2), is("")); } @Test public void isReadOnly() throws Exception { assertTrue(actualMetaData.isReadOnly(1)); assertTrue(actualMetaData.isReadOnly(2)); } @Test public void isWritable() throws Exception { assertFalse(actualMetaData.isWritable(1)); assertFalse(actualMetaData.isWritable(2)); } @Test public void isDefinitelyWritable() throws Exception { assertFalse(actualMetaData.isDefinitelyWritable(1)); assertFalse(actualMetaData.isDefinitelyWritable(2)); } @Test public void getColumnClassName() throws Exception { assertThat(actualMetaData.getColumnClassName(1), is("java.lang.Long")); assertThat(actualMetaData.getColumnClassName(2), is("java.lang.String")); } @Test public void unwrap() throws Exception { assertThat(actualMetaData.unwrap(GeneratedKeysResultSetMetaData.class), is((GeneratedKeysResultSetMetaData) actualMetaData)); } @Test(expected = SQLException.class) public void unwrapError() throws Exception { actualMetaData.unwrap(RowSetMetaDataImpl.class); } @Test public void isWrapperFor() throws Exception { assertTrue(actualMetaData.isWrapperFor(GeneratedKeysResultSetMetaData.class)); } }