public void testTemplates() throws Exception {
final DRLParser parser = parseResource( "test_Templates.drl" );
parser.compilation_unit();
final PackageDescr pkg = parser.getPackageDescr();
if ( parser.hasErrors() ) {
System.err.println( "FACT TEMPLATES FAILED: " + parser.getErrorMessages() );
}
assertFalse( parser.hasErrors() );
assertEquals( 1,
pkg.getRules().size() );
assertEquals( 2,
pkg.getFactTemplates().size() );
FactTemplateDescr fact1 = (FactTemplateDescr) pkg.getFactTemplates().get( 0 );
assertEquals( "Cheese",
fact1.getName() );
assertEquals( 2,
fact1.getFields().size() );
assertEquals( "name",
((FieldTemplateDescr) fact1.getFields().get( 0 )).getName() );
assertEquals( "String",
((FieldTemplateDescr) fact1.getFields().get( 0 )).getClassType() );
assertEquals( "age",
((FieldTemplateDescr) fact1.getFields().get( 1 )).getName() );
assertEquals( "Integer",
((FieldTemplateDescr) fact1.getFields().get( 1 )).getClassType() );
fact1 = null;
final FactTemplateDescr fact2 = (FactTemplateDescr) pkg.getFactTemplates().get( 1 );
assertEquals( "Wine",
fact2.getName() );
assertEquals( 3,
fact2.getFields().size() );