/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.operation;
import junit.framework.TestCase;
/**
*
*/
public class SqlWhereClauseUtilTest extends TestCase {
private SqlWhereClauseUtil sqlWhereclause;
@Override
protected void setUp() throws Exception {
sqlWhereclause = new SqlWhereClauseUtil();
}
public void test_getWhereClauseFields() throws Exception {
String[] whereClauseFields =
sqlWhereclause.getWhereClauseFields(
"and (BO_TRANSACTION.PERIOD=$CURRENT_PERIOD$ or BO_TRANSACTION.PERIOD=$PREVIOUS_PERIOD$) and INVENTORY_TYPE='AD0'");
assertEquals(10, whereClauseFields.length);
assertEquals("PERIOD", whereClauseFields[0]);
assertEquals("INVENTORY_TYPE", whereClauseFields[1]);
assertEquals("", whereClauseFields[2]);
assertEquals("", whereClauseFields[3]);
assertEquals("", whereClauseFields[4]);
assertEquals("", whereClauseFields[5]);
assertEquals("", whereClauseFields[6]);
assertEquals("", whereClauseFields[7]);
assertEquals("", whereClauseFields[8]);
assertEquals("", whereClauseFields[9]);
}
public void getWhereClauseOperandes() throws Exception {
String[] whereClauseOperandes =
sqlWhereclause.getWhereClauseOperandes(
"and (BO_TRANSACTION.PERIOD=$CURRENT_PERIOD$ or BO_TRANSACTION.PERIOD=$PREVIOUS_PERIOD$) and INVENTORY_TYPE='AD0'");
assertEquals(10, whereClauseOperandes.length);
assertEquals("(BO_TRANSACTION.PERIOD=$CURRENT_PERIOD$ or BO_TRANSACTION.PERIOD=$PREVIOUS_PERIOD$)",
whereClauseOperandes[0]);
assertEquals("INVENTORY_TYPE='AD0'", whereClauseOperandes[1]);
assertEquals("", whereClauseOperandes[2]);
assertEquals("", whereClauseOperandes[3]);
assertEquals("", whereClauseOperandes[4]);
assertEquals("", whereClauseOperandes[5]);
assertEquals("", whereClauseOperandes[6]);
assertEquals("", whereClauseOperandes[7]);
assertEquals("", whereClauseOperandes[8]);
assertEquals("", whereClauseOperandes[9]);
}
public void test_getFieldofElement() throws Exception {
assertEquals("INVENTORY_TYPE",
sqlWhereclause.getFieldOfElement("INVENTORY_TYPE='AD0'"));
assertEquals("INVENTORY_TYPE",
sqlWhereclause.getFieldOfElement("MATABLE.INVENTORY_TYPE='AD0'"));
assertEquals("INVENTORY_TYPE", sqlWhereclause.getFieldOfElement("INVENTORY_TYPE"));
assertEquals("QUANTITY_TYPE", sqlWhereclause.getFieldOfElement(
sqlWhereclause.getLeftElementOfOperande(
"(QUANTITY_TYPE='P' OR QUANTITY_TYPE='M' OR SECURITY_CLASSIFICATION='TRES' OR SECURITY_CLASSIFICATION='PRET')")));
assertEquals("QUANTITY_TYPE", sqlWhereclause.getFieldOfElement(
sqlWhereclause.getLeftElementOfOperande("QUANTITY_TYPE<>'P' ")));
assertEquals("INVENTORY_TYPE",
sqlWhereclause.getFieldOfElement("INVENTORY_TYPE<>'AD0'"));
}
public void test_dealWithSourceSystem() throws Exception {
sqlWhereclause.init();
sqlWhereclause.dealWithPortfolioGroup("PTF_GROUP_NAME", "MA_TABLE");
sqlWhereclause.dealWithSourceSystem("SRC_SYSTEM", "MA_TABLE");
assertEquals("BO_PORTFOLIO.PORTFOLIO_GROUP ='PTF_GROUP_NAME'",
sqlWhereclause.getSelectTerm());
assertEquals(
"MA_TABLE.PORTFOLIO_CODE = BO_PORTFOLIO.PORTFOLIO_CODE and MA_TABLE.SOURCE_SYSTEM = 'SRC_SYSTEM'",
sqlWhereclause.getUpdateTerm());
sqlWhereclause.fill("AAAAMM", "coucou",null);
assertEquals("BO_PORTFOLIO.PORTFOLIO_GROUP ='PTF_GROUP_NAME'",
sqlWhereclause.getSelectTerm());
assertEquals(
"MA_TABLE.PORTFOLIO_CODE = BO_PORTFOLIO.PORTFOLIO_CODE and MA_TABLE.SOURCE_SYSTEM = 'SRC_SYSTEM'",
sqlWhereclause.getUpdateTerm());
}
public void test_dealWithPeriod() throws Exception {
assertEquals("and (BO_TRANSACTION.PERIOD='PERIOD1' or BO_TRANSACTION.PERIOD='PERIOD1-1')",
sqlWhereclause.fillWhereClauseWithPeriod(
"and (BO_TRANSACTION.PERIOD=$CURRENT_PERIOD$ or BO_TRANSACTION.PERIOD=$PREVIOUS_PERIOD$)",
"PERIOD1",
"PERIOD1-1",null));
}
}