use of org.drools.core.time.impl.IntervalTimer in project drools by kiegroup.
the class RuleBuilderTest method testBuildAttributes.
@Test
public void testBuildAttributes() throws Exception {
// creates mock objects
final RuleBuildContext context = mock(RuleBuildContext.class);
final RuleImpl rule = mock(RuleImpl.class);
// creates input object
final RuleDescr ruleDescr = new RuleDescr("my rule");
ruleDescr.addAttribute(new AttributeDescr("no-loop", "true"));
ruleDescr.addAttribute(new AttributeDescr("auto-focus", "false"));
ruleDescr.addAttribute(new AttributeDescr("agenda-group", "my agenda"));
ruleDescr.addAttribute(new AttributeDescr("activation-group", "my activation"));
ruleDescr.addAttribute(new AttributeDescr("lock-on-active", ""));
ruleDescr.addAttribute(new AttributeDescr("enabled", "false"));
ruleDescr.addAttribute(new AttributeDescr("duration", "60"));
ruleDescr.addAttribute(new AttributeDescr("calendars", "\"cal1\""));
ruleDescr.addAttribute(new AttributeDescr("date-effective", "10-Jul-1974"));
ruleDescr.addAttribute(new AttributeDescr("date-expires", "10-Jul-2040"));
// creates expected results
final Calendar effective = Calendar.getInstance();
effective.setTime(DateUtils.parseDate("10-Jul-1974"));
final Calendar expires = Calendar.getInstance();
expires.setTime(DateUtils.parseDate("10-Jul-2040"));
// defining expectations on the mock object
when(context.getRule()).thenReturn(rule);
when(context.getRuleDescr()).thenReturn(ruleDescr);
when(context.getKnowledgeBuilder()).thenReturn(new KnowledgeBuilderImpl());
// calling the build method
RuleBuilder.buildAttributes(context);
// check expectations
verify(rule).setNoLoop(true);
verify(rule).setAutoFocus(false);
verify(rule).setAgendaGroup("my agenda");
verify(rule).setActivationGroup("my activation");
verify(rule).setLockOnActive(true);
verify(rule).setEnabled(EnabledBoolean.ENABLED_FALSE);
verify(rule).setTimer(new IntervalTimer(null, null, -1, TimeUtils.parseTimeString("60"), 0));
verify(rule).setCalendars(new String[] { "cal1" });
verify(rule).setDateEffective(effective);
verify(rule).setDateExpires(expires);
}
Aggregations