@Test public void testBuildDurationExpression() 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( "duration", "( 1h30m )" ) ); ruleDescr.addAttribute( new AttributeDescr( "calendars", "[\"cal1\", \"cal2\"]" ) ); // defining expectations on the mock object when( context.getRule() ).thenReturn( rule ); when( context.getRuleDescr() ).thenReturn( ruleDescr ); // calling the build method RuleBuilder.buildAttributes( context ); // check expectations verify( rule ).setTimer( new IntervalTimer( null, null, -1, TimeUtils.parseTimeString( "1h30m" ), 0 ) ); verify( rule ).setCalendars( new String[]{"cal1", "cal2"} ); }
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" ) );
final String ruleClassName = "RuleClassName.java"; ruleDescr.setClassName( ruleClassName ); ruleDescr.addAttribute(new AttributeDescr("dialect", "java"));
@Test public void testAttributeOverriding() { PackageDescr desc = new PackageDescr("foo"); AttributeDescr at1 = new AttributeDescr("foo", "bar"); AttributeDescr at2 = new AttributeDescr("foo2", "default"); desc.addAttribute( at1 ); desc.addAttribute( at2 ); RuleDescr rule = new RuleDescr("abc"); rule.addAttribute( new AttributeDescr("foo", "overridden") ); desc.addRule( rule ); List pkgAts = desc.getAttributes(); assertEquals("bar", ((AttributeDescr)pkgAts.get( 0 )).getValue()); assertEquals("default", ((AttributeDescr)pkgAts.get( 1 )).getValue()); desc.afterRuleAdded( rule ); Map<String, AttributeDescr> ruleAts = rule.getAttributes(); assertEquals("overridden", ((AttributeDescr)ruleAts.get( "foo" )).getValue()); assertEquals("default", ((AttributeDescr)ruleAts.get( "foo2" )).getValue()); }
@Test public void testInvalidDialect() throws Exception { final PackageDescr pkgDescr = new PackageDescr( "org.drools" ); final RuleDescr ruleDescr = new RuleDescr( "Test Rule" ); ruleDescr.addAttribute( new AttributeDescr( "dialect", "mvl" ) ); ruleDescr.setConsequence( "" ); pkgDescr.addRule( ruleDescr ); final KnowledgeBuilderImpl kBuilder = new KnowledgeBuilderImpl(); kBuilder.addPackage(pkgDescr); assertFalse(kBuilder.getErrors().toString(), kBuilder.getErrors().isEmpty()); }
InternalKnowledgePackage pkg = new KnowledgePackageImpl( "pkg1" ); final RuleDescr ruleDescr = new RuleDescr( "rule 1" ); ruleDescr.addAttribute( new AttributeDescr( "salience", "(p.age + 20)/2" ) ); ruleDescr.setConsequence( "" );
ruleDescr.addAttribute( new AttributeDescr("dialect", "mvel") );
ruleDescr.addAttribute(new AttributeDescr("dialect", "mock")); ruleDescr.setLhs(new AndDescr());