package com.goodworkalan.addendum.dialect; import static com.goodworkalan.addendum.Addendum.UNMAPPABLE_TYPE; import static org.testng.Assert.assertEquals; import java.math.BigDecimal; import java.math.BigInteger; import java.nio.ByteBuffer; import java.sql.Types; import java.util.Calendar; import org.testng.annotations.Test; import com.goodworkalan.danger.Danger; /** * Unit tests for the {@link Column} class. * * @author Alan Gutierrez */ public class ColumnTest { /** Test Java type to SQL type conversion. */ // @Test public void getColumnType() { assertEquals(Column.getColumnType(boolean.class), Types.BIT); assertEquals(Column.getColumnType(short.class), Types.TINYINT); assertEquals(Column.getColumnType(char.class), Types.SMALLINT); assertEquals(Column.getColumnType(int.class), Types.INTEGER); assertEquals(Column.getColumnType(long.class), Types.BIGINT); assertEquals(Column.getColumnType(float.class), Types.FLOAT); assertEquals(Column.getColumnType(double.class), Types.DOUBLE); assertEquals(Column.getColumnType(BigDecimal.class), Types.NUMERIC); assertEquals(Column.getColumnType(BigInteger.class), Types.NUMERIC); assertEquals(Column.getColumnType(BigInteger.class), Types.NUMERIC); assertEquals(Column.getColumnType(Calendar.class), Types.TIMESTAMP); assertEquals(Column.getColumnType(String.class), Types.VARCHAR); } /** Test failed Java type to SQL type conversion. */ // @Test(expectedExceptions = Danger.class) public void noSuchColumnType() { try { Column.getColumnType(ByteBuffer.class); } catch (Danger e) { assertEquals(e.code, UNMAPPABLE_TYPE); System.out.println(e.getMessage()); throw e; } } /** Test setting the column type from a Java type. */ // @Test public void setColumnTypeJava() { Column column = new Column("a", long.class); column.setColumnType(int.class); assertEquals(column.getColumnType(), Types.INTEGER); } }