assertEquals( 7,
rule.getConsequenceLine() );
assertEquals( 2,
rule.getConsequencePattern() );
final AndDescr lhs = rule.getLhs();
assertNotNull( lhs );
assertEquals( 3,
lhs.getDescrs().size() );
// Check first pattern
final PatternDescr first = (PatternDescr) lhs.getDescrs().get( 0 );
assertEquals( "foo3",
first.getIdentifier() );
assertEquals( "Bar",
first.getObjectType() );
assertEquals( 1,
first.getConstraint().getDescrs().size() );
AndDescr fieldAnd = (AndDescr) first.getConstraint();
ExprConstraintDescr constraint = (ExprConstraintDescr) fieldAnd.getDescrs().get( 0 );
assertNotNull( constraint );
assertEquals( "a==3",
constraint.getExpression() );
// Check second pattern
final PatternDescr second = (PatternDescr) lhs.getDescrs().get( 1 );
assertEquals( "foo4",
second.getIdentifier() );
assertEquals( "Bar",
second.getObjectType() );
// no constraints, only a binding
fieldAnd = (AndDescr) second.getConstraint();
assertEquals( 1,
fieldAnd.getDescrs().size() );
final ExprConstraintDescr binding = (ExprConstraintDescr) second.getConstraint().getDescrs().get( 0 );
assertEquals( "a4:a==4",
binding.getExpression() );