/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.utils;
import fakedb.FakeDriver;
import java.sql.SQLException;
import java.sql.Types;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* DOCUMENT ME!
*
* @author $Author: gonnot $
* @version $Revision: 1.1.1.1 $
*/
public class SQLFieldListTest extends TestCase {
TestEnvironnement testEnv;
/**
* Constructor for the SQLFieldListTest object
*
* @param Name_ Description of Parameter
*/
public SQLFieldListTest(String Name_) {
super(Name_);
}
/**
* A unit test for JUnit
*/
public void test_clear() {
SQLFieldList list = new SQLFieldList();
list.addStringField("a");
list.setFieldValue("a", "valA");
assertEquals(list.getFieldValue("a"), "valA");
list.clearValues();
assertEquals(list.getFieldValue("a"), null);
}
public void test_addAll() {
SQLFieldList listA = new SQLFieldList();
listA.addStringField("a");
listA.setFieldValue("a", "listA_valA");
listA.addStringField("c");
listA.setFieldValue("c", "listA_valC");
SQLFieldList listB = new SQLFieldList();
listB.addStringField("a");
listB.setFieldValue("a", "listB_valA");
listB.addStringField("b");
listB.setFieldValue("b", "listB_valB");
listA.addAll(listB);
assertEquals(listA.getFieldValue("a"), "listB_valA");
assertEquals(listA.getFieldValue("b"), "listB_valB");
assertEquals(listA.getFieldValue("c"), "listA_valC");
}
/**
* A unit test for JUnit
*/
public void test_removeField() {
SQLFieldList list = new SQLFieldList();
list.addStringField("a");
list.addStringField("b");
list.setFieldValue("a", "valA");
assertEquals(list.getFieldValue("a"), "valA");
list.removeField("a");
try {
list.getFieldValue("a");
fail("Colonne a supprime");
}
catch (Exception ex) {}
}
/**
* A unit test for JUnit
*
* @exception Exception Description of Exception
*/
public void test_constructor() throws Exception {
initMetadata();
SQLFieldList list = new SQLFieldList("A_TABLE", testEnv.getHomeConnection());
// Verifie que le champs existe
assertEquals(list.getFieldValue("COL_B"), null);
assertEquals(list.getFieldType("COL_B"), java.sql.Types.VARCHAR);
}
/**
* A unit test for JUnit
*
* @exception Exception Description of Exception
*/
public void test_sortDBFieldList() throws Exception {
initMetadata();
SQLFieldList list = new SQLFieldList("A_TABLE", testEnv.getHomeConnection());
// Verifie que les champs sont tri�s
assertEquals((list.getSortedDBFieldNameList()).get(0), "COL_A");
assertEquals((list.getSortedDBFieldNameList()).get(1), "COL_B");
}
/**
* The JUnit setup method
*
* @exception Exception Description of Exception
*/
protected void setUp() throws Exception {
TestEnvironnement.forceFakeDriver();
testEnv = TestEnvironnement.newEnvironment();
}
/**
* The teardown method for JUnit
*
* @exception SQLException Description of Exception
*/
protected void tearDown() throws SQLException {
testEnv.close();
}
/**
* Overview.
*/
private void initMetadata() {
Object[][] tableDef =
{
{},
{null, null, null, "COL_B", new Integer(Types.VARCHAR)},
{null, null, null, "COL_A", new Integer(Types.INTEGER)},
{null, null, null, "COL_C", new Integer(Types.NUMERIC)},
};
FakeDriver.getDriver().pushResultSet(tableDef,
"FakeDatabaseMetaData.getColumns(null, null, A_TABLE, null)");
}
/**
* A unit test suite for JUnit
*
* @return The test suite
*/
public static Test suite() {
return new TestSuite(SQLFieldListTest.class);
}
}