package net.sourceforge.mayfly.datastore.types; import junit.framework.TestCase; import net.sourceforge.mayfly.MayflyException; import net.sourceforge.mayfly.datastore.LongCell; import net.sourceforge.mayfly.datastore.StringCell; import net.sourceforge.mayfly.evaluation.Value; public class DataTypeTest extends TestCase { public void testErrorMessages() throws Exception { checkStoreString("integer", new IntegerDataType("integer")); checkStoreString("smallint", new IntegerDataType("smallint")); checkStoreInteger("date", new DateDataType()); checkStoreInteger("timestamp", new TimestampDataType()); checkStoreInteger("binary", new BinaryDataType()); checkStoreInteger("string", new StringDataType("varchar(255)")); } private void checkStoreString(String whatKindOfColumn, DataType type) { try { type.coerce(new Value(new StringCell("hi")), "a"); fail(); } catch (MayflyException e) { assertEquals("attempt to store string 'hi' into " + whatKindOfColumn + " column a", e.getMessage()); } } private void checkStoreInteger(String whatKindOfColumn, DataType type) { try { type.coerce(new Value(new LongCell(77)), "a"); fail(); } catch (MayflyException e) { assertEquals("attempt to store number 77 into " + whatKindOfColumn + " column a", e.getMessage()); } } }