package org.simpleflatmapper.jdbc.test.impl; import org.junit.Assert; import org.junit.Test; import org.simpleflatmapper.jdbc.JdbcColumnKey; import org.simpleflatmapper.jdbc.impl.JDBCTypeHelper; import org.simpleflatmapper.jdbc.impl.getter.UndefinedDateResultSetGetter; import java.math.BigDecimal; import java.sql.Array; import java.sql.Blob; import java.sql.Clob; import java.sql.Date; import java.sql.Ref; import java.sql.Struct; import java.sql.Time; import java.sql.Timestamp; import java.sql.Types; //IFJAVA8_START import java.time.OffsetDateTime; import java.time.OffsetTime; //IFJAVA8_END import static org.junit.Assert.assertEquals; public class JDBCTypeHelperTest { @Test public void testSqlTypeMapping() { testSqlTypes(Array.class, Types.ARRAY); testSqlTypes(String.class, Types.CHAR, Types.VARCHAR, Types.LONGNVARCHAR); testSqlTypes(BigDecimal.class, Types.NUMERIC, Types.DECIMAL); testSqlTypes(boolean.class, Types.BIT); testSqlTypes(byte.class, Types.TINYINT); testSqlTypes(short.class, Types.SMALLINT); testSqlTypes(int.class, Types.INTEGER); testSqlTypes(long.class, Types.BIGINT); testSqlTypes(float.class, Types.REAL); testSqlTypes(double.class, Types.FLOAT, Types.DOUBLE); testSqlTypes(byte[].class, Types.BINARY, Types.VARBINARY, Types.LONGVARBINARY); testSqlTypes(Date.class, Types.DATE); testSqlTypes(Time.class, Types.TIME); testSqlTypes(Timestamp.class, Types.TIMESTAMP); testSqlTypes(Clob.class, Types.CLOB); testSqlTypes(Blob.class, Types.BLOB); testSqlTypes(Struct.class, Types.STRUCT); testSqlTypes(Ref.class, Types.REF); //IFJAVA8_START testSqlTypes(OffsetTime.class, Types.TIME_WITH_TIMEZONE); testSqlTypes(OffsetDateTime.class, Types.TIMESTAMP_WITH_TIMEZONE); //IFJAVA8_END } @Test public void testSqlTypeMappingDefault() { testSqlTypes(Timestamp.class, java.util.Date.class, Timestamp.class); //IFJAVA8_START testSqlTypes(Time.class, OffsetTime.class); testSqlTypes(Timestamp.class, OffsetDateTime.class); //IFJAVA8_END } private void testSqlTypes(Class<?> expected, int... sqlTypes) { for(int type : sqlTypes) { Assert.assertEquals(expected, JDBCTypeHelper.toJavaType(type, null)); } } private void testSqlTypes(Class<?> expected, Class<?>... sqlTypes) { for(Class<?> type : sqlTypes) { assertEquals(expected, JDBCTypeHelper.toJavaType(JdbcColumnKey.UNDEFINED_TYPE, type)); } } }