/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.broadcast.common.columns;
import fakedb.FakeResultSet;
import java.sql.ResultSet;
import java.sql.Types;
import junit.framework.TestCase;
import net.codjo.sql.builder.FieldInfo;
import net.codjo.sql.builder.TableName;
public class FileColumnFactoryTest extends TestCase {
private FileColumnFactory factory;
private static final FieldInfo FIELDF_INFO = new FieldInfo(new TableName("COCO"), "TOTO", -1);
public void test_newExpression() throws Exception {
ResultSet rs = new FakeResultSet(new Object[][]{{"EXPRESSION"}, {"Valeur"}}).getStub();
rs.next();
assertNotNull("Construction d'une expression", factory.newExpression(rs, Types.VARCHAR, null));
rs = new FakeResultSet(new Object[][]{{"EXPRESSION"}, {null}}).getStub();
rs.next();
assertNull("Pas d'expression", factory.newExpression(rs, Types.VARCHAR, null));
}
public void test_newExpression_noColumn() throws Exception {
ResultSet rs = new FakeResultSet(new Object[][]{{"TOTO"}, {null}}).getStub();
rs.next();
assertNull("Pas de colonne d'expression", factory.newExpression(rs, Types.VARCHAR, null));
}
public void test_newFileColumnGenerator_Boolean() throws Exception {
ResultSet rs = new FakeResultSet(new Object[][]{
{"COLUMN_NAME", "PADDING_CARACTER", "FIXED_LENGTH", "BREAK_FIELD"},
{"bobo", null, Boolean.FALSE, Boolean.FALSE}
}).getStub();
rs.next();
FileColumnGenerator generator = factory.newFileColumnGenerator(rs, FIELDF_INFO, Types.BIT);
assertTrue(generator instanceof BooleanColumnGenerator);
}
public void test_newFileColumnGenerator_Date() throws Exception {
ResultSet rs = new FakeResultSet(new Object[][]{
{"COLUMN_NAME", "COLUMN_DATE_FORMAT", "PADDING_CARACTER", "FIXED_LENGTH", "BREAK_FIELD"},
{"bobo", "dd/MM/yyyy", null, Boolean.FALSE, Boolean.FALSE}
}).getStub();
rs.next();
FileColumnGenerator generator = factory.newFileColumnGenerator(rs, FIELDF_INFO, Types.DATE);
assertTrue(generator instanceof DateColumnGenerator);
generator = factory.newFileColumnGenerator(rs, FIELDF_INFO, Types.TIMESTAMP);
assertTrue(generator instanceof DateColumnGenerator);
}
public void test_newFileColumnGenerator_Numeric() throws Exception {
ResultSet rs = new FakeResultSet(new Object[][]{
{"COLUMN_NAME", "DECIMAL_SEPARATOR", "COLUMN_NUMBER_FORMAT", "PADDING_CARACTER",
"FIXED_LENGTH", "BREAK_FIELD"},
{"bobo", ".", "0.00", null, Boolean.FALSE, Boolean.FALSE}
}).getStub();
rs.next();
FileColumnGenerator generator = factory.newFileColumnGenerator(rs, FIELDF_INFO, Types.INTEGER);
assertTrue(generator instanceof NumberColumnGenerator);
generator = factory.newFileColumnGenerator(rs, FIELDF_INFO, Types.NUMERIC);
assertTrue(generator instanceof NumberColumnGenerator);
}
public void test_newFileColumnGenerator_String() throws Exception {
ResultSet rs = new FakeResultSet(new Object[][]{
{"COLUMN_NAME", "PADDING_CARACTER", "FIXED_LENGTH", "BREAK_FIELD"},
{"bobo", null, Boolean.FALSE, Boolean.TRUE}
}).getStub();
rs.next();
FileColumnGenerator generator = factory.newFileColumnGenerator(rs, FIELDF_INFO, Types.VARCHAR);
assertTrue(generator instanceof StringColumnGenerator);
generator = factory.newFileColumnGenerator(rs, FIELDF_INFO, Types.CHAR);
assertTrue(generator instanceof StringColumnGenerator);
}
@Override
protected void setUp() throws Exception {
factory = new FileColumnFactory();
}
}