KnowledgeBuilderError[] errors = kbuilder.getErrors().toArray( new KnowledgeBuilderError[0] );
assertEquals( 3,
errors.length );
final DescrBuildError stiltonError = (DescrBuildError) errors[0];
assertTrue( stiltonError.getMessage().contains( "Stilton" ) );
assertNotNull( stiltonError.getDescr() );
assertTrue( stiltonError.getLine() != -1 );
// check that its getting it from the ruleDescr
assertEquals( stiltonError.getLine(),
stiltonError.getDescr().getLine() );
// check the absolute error line number (there are more).
assertEquals( 11,
stiltonError.getLine() );
final DescrBuildError poisonError = (DescrBuildError) errors[1];
assertTrue( poisonError.getMessage().contains( "Poison" ) );
assertEquals( 13,
poisonError.getLine() );
assertTrue( errors[2].getMessage().contains( "add" ) );
// now check the RHS, not being too specific yet, as long as it has the
// rules line number, not zero
final DescrBuildError rhsError = (DescrBuildError) errors[2];
assertTrue( rhsError.getLine() >= 8 && rhsError.getLine() <= 17 ); // TODO this should be 16
}