/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.utils.sql; import net.codjo.model.Table; import net.codjo.utils.TestEnvironnement; import fakedb.FakeDriver; import java.math.BigDecimal; import java.sql.Types; import java.util.HashMap; import java.util.Map; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import org.apache.log4j.Logger; /** * DOCUMENT ME! * * @author $Author: blazart $ * @version $Revision: 1.3 $ */ public class GenericTableModelTest extends TestCase { GenericTableModel model; TestEnvironnement testEnv; // Log private static final Logger APP = Logger.getLogger(GenericTableModelTest.class); /** * Constructor for the NonPersistentTableModelTest object * * @param name Description of Parameter */ public GenericTableModelTest(String name) { super(name); } /** * A unit test suite for JUnit * * @return The test suite */ public static Test suite() { return new TestSuite(GenericTableModelTest.class); } /** * A unit test for JUnit * * @exception Exception Description of Exception */ public void test_addNewLine() throws Exception { assertEquals(model.getRowCount(), 5); model.addNewLine(); model.addNewLine(); assertEquals(model.getRowCount(), 7); model.deleteLine(0); model.deleteLine(0); assertEquals(model.getRowCount(), 5); } /** * A unit test for JUnit */ public void test_getALineOfKey() { Map hm = model.getALineOfKey(4); assertNotNull(hm); assertEquals(((BigDecimal)hm.get("THE_IDENTITY")), model.getValueAt(4, 0)); } /** * A unit test for JUnit */ public void test_getColumnClass() { assertEquals(model.getColumnClass(0), Number.class); assertEquals(model.getColumnClass(1), Boolean.class); assertEquals(model.getColumnClass(2), java.sql.Date.class); assertEquals(model.getColumnClass(3), Integer.class); assertEquals(model.getColumnClass(4), String.class); assertEquals(model.getColumnClass(5), String.class); assertEquals(model.getColumnClass(6), String.class); assertEquals(model.getColumnClass(7), Number.class); assertEquals(model.getColumnClass(8), String.class); assertEquals(model.getColumnClass(9), Integer.class); } /** * A unit test for JUnit */ public void test_getColumnCount() { assertEquals(model.getColumnCount(), 10); } /** * A unit test for JUnit */ public void test_getColumnName() { assertEquals(model.getColumnName(0), "colonne_identit�"); assertEquals(model.getColumnName(1), "colonne_bit"); assertEquals(model.getColumnName(2), "colonne_date"); assertEquals(model.getColumnName(3), "colonne_entier"); assertEquals(model.getColumnName(4), "colonne_varchar"); assertEquals(model.getColumnName(5), "colonne_char_1"); assertEquals(model.getColumnName(6), "colonne_char_3"); assertEquals(model.getColumnName(7), "colonne_numeric_17_5"); assertEquals(model.getColumnName(8), "colonne_text"); assertEquals(model.getColumnName(9), "colonne_small_int"); } /** * A unit test for JUnit * * @exception Exception Description of Exception */ public void test_getValueAt() throws Exception { // assertEquals(model.getValueAt(0, 0), new BigDecimal(1)); assertEquals(model.getValueAt(1, 1), Boolean.TRUE); assertEquals(model.getValueAt(2, 3), new Integer(100)); assertEquals(model.getValueAt(2, 4), "et obscure toute seule, perdue"); assertEquals(model.getValueAt(2, 5), "C"); assertEquals(model.getValueAt(3, 6), "KLM"); assertEquals(model.getValueAt(4, 7), new BigDecimal("123456789012.12345")); } /** * The JUnit setup method * * @exception Exception Description of Exception */ protected void setUp() throws Exception { TestEnvironnement.forceFakeDriver(); testEnv = TestEnvironnement.newEnvironment(); Dependency.setConnectionManager(testEnv.getConnectionManager()); Dependency.setHomeConnection(testEnv.getHomeConnection()); Table table = getTableBidon(); fakeBidonRow(); Object[][] matrix = { {}, {new Integer(5)} }; FakeDriver.getDriver().pushResultSet(matrix, "select count(*) from BIDON "); initAllLabel(); initGuiFields(); APP.debug("-----------"); GenericTable jtable = new GenericTable(table, false); APP.debug("ffff-----------"); APP.debug("setUp : "); model = jtable.getTableModel(); } /** * The teardown method for JUnit */ protected void tearDown() { testEnv.close(); } /** * Overview. */ void fakeBidonRow() { Object[][] matrix = { { "THE_IDENTITY", "THE_BIT", "THE_DATE", "THE_INTEGER", "THE_VARCHAR_30", "THE_CHAR_1", "THE_CHAR_3", "THE_NUMERIC_17_5", "THE_TEXT", "THE_SMALL_INT", "THE_IDENTITY" }, { new BigDecimal(0), Boolean.FALSE, null, new Integer(0), "Le petit chaperon rouge se", "A", "ABC", new BigDecimal("12345678.12345"), "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa_ok", new Integer(0), new BigDecimal(0) }, { new BigDecimal(1), Boolean.TRUE, null, new Integer(10), "ballade dans la for�t sombre", "B", "DEF", new BigDecimal("123456789.12345"), "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb_ok", new Integer(10), new BigDecimal(1) }, { new BigDecimal(2), Boolean.FALSE, null, new Integer(100), "et obscure toute seule, perdue", "C", "GHI", new BigDecimal("1234567890.12345"), "ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc_ok", new Integer(20), new BigDecimal(2) }, { new BigDecimal(3), Boolean.TRUE, null, new Integer(1000), "quand soudain un h�risson", "D", "KLM", new BigDecimal("12345678901.12345"), "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd_ok", new Integer(30), new BigDecimal(3) }, { new BigDecimal(4), Boolean.FALSE, null, new Integer(10000), "traverse la route et splatch", "E", "NOP", new BigDecimal("123456789012.12345"), "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee_ok", new Integer(40), new BigDecimal(4) } }; FakeDriver.getDriver().pushResultSet(matrix, "select BIDON.THE_IDENTITY, BIDON.THE_BIT, BIDON.THE_DATE, BIDON.THE_INTEGER, BIDON.THE_VARCHAR_30, BIDON.THE_CHAR_1, BIDON.THE_CHAR_3, BIDON.THE_NUMERIC_17_5, BIDON.THE_TEXT, BIDON.THE_SMALL_INT, BIDON.THE_IDENTITY from BIDON "); } /** * Overview. */ void initAllLabel() { String[][] matrix = { {"THE_IDENTITY", "colonne_identit�"}, {"THE_BIT", "colonne_bit"}, {"THE_DATE", "colonne_date"}, {"THE_INTEGER", "colonne_entier"}, {"THE_VARCHAR_30", "colonne_varchar"}, {"THE_CHAR_1", "colonne_char_1"}, {"THE_CHAR_3", "colonne_char_3"}, {"THE_NUMERIC_17_5", "colonne_numeric_17_5"}, {"THE_TEXT", "colonne_text"}, {"THE_SMALL_INT", "colonne_small_int"} }; for (int i = matrix.length - 1; i >= 0; i--) { initFieldLabel(matrix[i][0], matrix[i][1]); } } /** * Overview. * * @param col Description of Parameter * @param label Description of Parameter */ void initFieldLabel(String col, String label) { Object[][] matrix = { {"FIELD_LABEL"}, {label} }; FakeDriver.getDriver().pushResultSet(matrix, "select FIELD_LABEL from PM_FIELD_LABEL where DB_TABLE_NAME='BIDON' " + "and DB_FIELD_NAME='" + col + "'"); } /** * Overview. */ void initGuiFields() { Object[][] tableDef = { {"DB_TABLE_NAME", "DB_FIELD_NAME", "COLUMN_INDEX", "SIZE", "EDITABLE"}, {"BIDON", "THE_IDENTITY", new Integer(1), new Integer(5), Boolean.FALSE}, {"BIDON", "THE_BIT", new Integer(2), new Integer(10), Boolean.TRUE}, {"BIDON", "THE_DATE", new Integer(3), new Integer(15), Boolean.TRUE}, {"BIDON", "THE_INTEGER", new Integer(4), new Integer(20), Boolean.TRUE}, {"BIDON", "THE_VARCHAR_30", new Integer(5), new Integer(25), Boolean.FALSE}, {"BIDON", "THE_CHAR_1", new Integer(6), new Integer(30), Boolean.FALSE}, {"BIDON", "THE_CHAR_3", new Integer(7), new Integer(35), Boolean.FALSE}, { "BIDON", "THE_NUMERIC_17_5", new Integer(8), new Integer(40), Boolean.TRUE }, {"BIDON", "THE_TEXT", new Integer(9), new Integer(45), Boolean.TRUE}, {"BIDON", "THE_SMALL_INT", new Integer(10), new Integer(50), Boolean.TRUE} }; FakeDriver.getDriver().pushResultSet(tableDef, "select * from PM_GUI_FIELDS where DB_TABLE_NAME='BIDON' order by COLUMN_INDEX"); } /** * Gets the TableBidon attribute of the GenericTableModelTest object * * @return The TableBidon value * * @exception Exception Description of Exception */ private Table getTableBidon() throws Exception { // Requete MetaData pour connaitre la table Object[][] pk = { {"COLUMN_NAME"}, {"THE_IDENTITY"} }; FakeDriver.getDriver().pushResultSet(pk, "FakeDatabaseMetaData.getPrimaryKeys(null, null, BIDON)"); Object[][] tableDef = { {}, {null, null, null, "THE_IDENTITY", new Integer(Types.NUMERIC)}, {null, null, null, "THE_BIT", new Integer(Types.BIT)}, {null, null, null, "THE_DATE", new Integer(Types.TIMESTAMP)}, {null, null, null, "THE_INTEGER", new Integer(Types.INTEGER)}, {null, null, null, "THE_VARCHAR_30", new Integer(Types.VARCHAR)}, {null, null, null, "THE_CHAR_1", new Integer(Types.CHAR)}, {null, null, null, "THE_CHAR_3", new Integer(Types.VARCHAR)}, {null, null, null, "THE_NUMERIC_17_5", new Integer(Types.NUMERIC)}, {null, null, null, "THE_TEXT", new Integer(Types.LONGVARCHAR)}, {null, null, null, "THE_SMALL_INT", new Integer(Types.SMALLINT)} }; FakeDriver.getDriver().pushResultSet(tableDef, "FakeDatabaseMetaData.getColumns(null, null, BIDON, null)"); FakeDriver.getDriver().pushResultSet(FakeDriver.EMPTY, "select * from PM_TABLE where DB_TABLE_NAME='BIDON'"); return testEnv.getTableHome().getTable("BIDON"); } }