/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.segmentation.server.preference.family;
import net.codjo.sql.builder.DefaultQueryConfig;
import net.codjo.sql.builder.JoinKeyExpression;
import net.codjo.sql.builder.QueryConfig;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import junit.framework.TestCase;
/**
* Classe de test de {@link XmlFamilyPreference}.
*/
public class XmlFamilyPreferenceTest extends TestCase {
private XmlFamilyPreference xmlFamilyPreference;
@Override
protected void setUp() {
xmlFamilyPreference = new XmlFamilyPreference("familyId", "rootTable", "DEST_TABLE");
}
public void test_constructor() throws Exception {
assertEquals("familyId", xmlFamilyPreference.getFamilyId());
assertEquals("rootTable", xmlFamilyPreference.getRootTable());
}
public void test_getArgumentList() throws Exception {
assertNull(xmlFamilyPreference.getArgumentNameList());
List<String> argumentList = new ArrayList<String>();
xmlFamilyPreference.setArgumentNameList(argumentList);
assertSame(argumentList, xmlFamilyPreference.getArgumentNameList());
}
public void test_getFunctionHolderList() throws Exception {
assertNull(xmlFamilyPreference.getFunctionHolderClassList());
List<String> functionHolderList = new ArrayList<String>();
xmlFamilyPreference.setFunctionHolderClassList(functionHolderList);
assertSame(functionHolderList, xmlFamilyPreference.getFunctionHolderClassList());
}
public void test_getSelectConfig() throws Exception {
XmlFamilyPreference familyPreference = this.xmlFamilyPreference;
assertNull(familyPreference.getSelectConfig());
QueryConfig selectConfig = new DefaultQueryConfig();
familyPreference.setSelectConfig(selectConfig);
assertSame(selectConfig, familyPreference.getSelectConfig());
}
public void test_getDeleteWhereClause() throws Exception {
assertNull(xmlFamilyPreference.getDeleteConfig());
final String deleteWhereClause = "deleteWhereClause";
DefaultQueryConfig queryConfig = new DefaultQueryConfig();
queryConfig.setRootExpression(new JoinKeyExpression(deleteWhereClause));
xmlFamilyPreference.setDeleteConfig(queryConfig);
assertSame(deleteWhereClause, xmlFamilyPreference.getDeleteConfig().getRootExpression().getWhereClause());
}
public void test_getFilter() throws Exception {
XmlFamilyPreference familyPreference = this.xmlFamilyPreference;
assertFalse(familyPreference.hasFilter());
try {
xmlFamilyPreference.getFilter();
fail("NullPointerException attendue.");
}
catch (NullPointerException e) {
}
xmlFamilyPreference.setFilter(new RowFilter() {
public boolean isRowExcluded(int segmentationId, Row row, Object filterValue) {
return false;
}
public String getTableName() {
return null;
}
public String getColumnName() {
return null;
}
});
assertTrue(xmlFamilyPreference.hasFilter());
assertNotNull(xmlFamilyPreference.getFilter());
xmlFamilyPreference.setFilter(null);
assertFalse(xmlFamilyPreference.hasFilter());
}
public void test_getTableMetaData() throws Exception {
assertNull(xmlFamilyPreference.getTableMetaData());
TableMetaData tableMetaData = new TableMetaData(null, null);
xmlFamilyPreference.setTableMetaData(tableMetaData);
assertSame(tableMetaData, xmlFamilyPreference.getTableMetaData());
}
public void test_getResultTableName() throws Exception {
try {
xmlFamilyPreference.getResultTableName();
fail("NullPointerException attendue.");
}
catch (NullPointerException e) {
}
List<ColumnMetaData> columnMetaDatas = null;
TableMetaData tableMetaData = new TableMetaData("TABLE_NAME", columnMetaDatas);
xmlFamilyPreference.setTableMetaData(tableMetaData);
assertEquals(tableMetaData.getName(),
xmlFamilyPreference.getResultTableName());
}
public void test_getResultColumnNames() throws Exception {
try {
xmlFamilyPreference.getResultTableColumnNames();
fail("NullPointerException attendue.");
}
catch (NullPointerException e) {
}
List<ColumnMetaData> columnMetaDatas = new ArrayList<ColumnMetaData>(0);
TableMetaData tableMetaData = new TableMetaData("TABLE_NAME", columnMetaDatas);
xmlFamilyPreference.setTableMetaData(tableMetaData);
assertTrue(Arrays.equals(tableMetaData.getColumnNames(),
xmlFamilyPreference.getResultTableColumnNames()));
}
public void test_getResultColumnType() throws Exception {
try {
xmlFamilyPreference.getResultTableColumnType("column_name");
fail("NullPointerException attendue.");
}
catch (NullPointerException e) {
}
String columnName = "column_name";
List<ColumnMetaData> columnMetaDatas = new ArrayList<ColumnMetaData>(1);
columnMetaDatas.add(new ColumnMetaData(columnName, 13));
TableMetaData tableMetaData = new TableMetaData("TABLE_NAME", columnMetaDatas);
xmlFamilyPreference.setTableMetaData(tableMetaData);
assertEquals(tableMetaData.getColumnType(columnName),
xmlFamilyPreference.getResultTableColumnType(columnName));
try {
xmlFamilyPreference.getResultTableColumnType("unknown_column_name");
fail("IllegalArgumentException attendue.");
}
catch (IllegalArgumentException e) {
}
}
}