}
@Test
public void testBuildAttributes() throws Exception {
// creates mock objects
final RuleBuildContext context = mock( RuleBuildContext.class );
final Rule rule = mock( Rule.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( "ruleflow-group",
"mygroup" ) );
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",
new DateFormatsImpl() ) );
final Calendar expires = Calendar.getInstance();
expires.setTime( DateUtils.parseDate( "10-Jul-2040",
new DateFormatsImpl() ) );
// defining expectations on the mock object
when( context.getRule() ).thenReturn( rule );
when( context.getRuleDescr() ).thenReturn( ruleDescr );
when( context.getPackageBuilder() ).thenReturn( new PackageBuilder() );
// calling the build method
RuleBuilder builder = new RuleBuilder();
builder.buildAttributes( context );