package org.akaza.openclinica.service.rule; import junit.framework.TestCase; import org.akaza.openclinica.domain.rule.RuleBean; import org.akaza.openclinica.domain.rule.RuleSetBean; import org.akaza.openclinica.domain.rule.RuleSetRuleBean; import org.akaza.openclinica.domain.rule.RulesPostImportContainer; import org.akaza.openclinica.domain.rule.action.EventActionBean; import org.akaza.openclinica.domain.rule.expression.Context; import org.akaza.openclinica.domain.rule.expression.ExpressionBean; import java.util.ArrayList; public class RulesPostImportContainerServiceTest extends TestCase { public RulesPostImportContainerServiceTest() { super(); } /** public void testDuplicationRuleSetDefs() { StudyDAO studyDao = new StudyDAO(getDataSource()); StudyBean study = (StudyBean) studyDao.findByPK(1); RulesPostImportContainerService postImportContainerService = (RulesPostImportContainerService) getContext().getBean("rulesPostImportContainerService"); postImportContainerService.setCurrentStudy(study); RulesPostImportContainer container = prepareContainer(); container = postImportContainerService.validateRuleDefs(container); assertEquals(0, container.getDuplicateRuleDefs().size()); assertEquals(0, container.getInValidRuleDefs().size()); assertEquals(1, container.getValidRuleDefs().size()); container = postImportContainerService.validateRuleSetDefs(container); assertEquals(1, container.getDuplicateRuleSetDefs().size()); assertEquals(0, container.getInValidRuleSetDefs().size()); assertEquals(0, container.getValidRuleSetDefs().size()); } **/ public void testCreateObj(){ RulesPostImportContainerService service = new RulesPostImportContainerService(null); // service.runValidationInList("SE_REG2.STARTDATE","SE_REG.STARTDATE",null,prepareContainer()); // Commented out this line due to failing when running unit test } private ArrayList<RuleSetBean> prepareContainer() { RulesPostImportContainer container = new RulesPostImportContainer(); ArrayList<RuleSetBean> ruleSets = new ArrayList<RuleSetBean>(); ArrayList<RuleBean> ruleDefs = new ArrayList<RuleBean>(); RuleBean rule = createRuleBean(); RuleSetBean ruleSet = getRuleSet(rule.getOid(),"SE_REG.STARTDATE","SE_REG3"); RuleSetBean ruleSet2 = getRuleSet(rule.getOid(),"SE_REG3.STARTDATE","SE_REG2"); ruleSets.add(ruleSet); ruleSets.add(ruleSet2); //ruleDefs.add(rule); //container.setRuleSets(ruleSets); //container.setRuleDefs(ruleDefs); return ruleSets; } private RuleSetBean getRuleSet(String ruleOid,String target,String oidRef) { RuleSetBean ruleSet = new RuleSetBean(); ruleSet.setTarget(createExpression(Context.OC_RULES_V1, target)); ruleSet.setOriginalTarget(createExpression(Context.OC_RULES_V1, target)); RuleSetRuleBean ruleSetRule = createRuleSetRule(ruleSet, ruleOid,oidRef); ruleSet.addRuleSetRule(ruleSetRule); return ruleSet; } private RuleSetRuleBean createRuleSetRule(RuleSetBean ruleSet, String ruleOid, String oidRef) { RuleSetRuleBean ruleSetRule = new RuleSetRuleBean(); //DiscrepancyNoteActionBean ruleAction = new DiscrepancyNoteActionBean(); EventActionBean ruleAction = new EventActionBean(); ruleAction.setOc_oid_reference(oidRef); ruleAction.setExpressionEvaluatesTo(true); ruleSetRule.addAction(ruleAction); ruleSetRule.setRuleSetBean(ruleSet); ruleSetRule.setOid(ruleOid); return ruleSetRule; } private RuleBean createRuleBean() { RuleBean ruleBean = new RuleBean(); ruleBean.setName("TEST"); ruleBean.setOid("BOY"); ruleBean.setDescription("Yellow"); ruleBean.setExpression(createExpression(Context.OC_RULES_V1, "SE_ED1NONRE.F_AGEN.IG_AGEN_UNGROUPED[1].I_AGEN_PERIODSTART eq \"07/01/2008\" and I_CONC_CON_MED_NAME eq \"Tylenol\"")); return ruleBean; } private ExpressionBean createExpression(Context context, String value) { ExpressionBean expression = new ExpressionBean(); expression.setContext(context); expression.setValue(value); return expression; } }