fp.getFactType() );
assertEquals( 1,
fp.getNumberOfConstraints() );
assertTrue( fp.getConstraint( 0 ) instanceof SingleFieldConstraintEBLeftSide );
final SingleFieldConstraintEBLeftSide exp = (SingleFieldConstraintEBLeftSide) fp.getConstraint( 0 );
assertEquals( "int",
exp.getFieldType() );
assertEquals( ">",
exp.getOperator() );
assertEquals( "5",
exp.getValue() );
assertEquals( 4,
exp.getExpressionLeftSide().getParts().size() );
assertTrue( exp.getExpressionLeftSide().getParts().get( 0 ) instanceof ExpressionUnboundFact );
final ExpressionUnboundFact expPart0 = (ExpressionUnboundFact) exp.getExpressionLeftSide().getParts().get( 0 );
assertEquals( "Parent",
expPart0.getFact().getFactType() );
assertTrue( exp.getExpressionLeftSide().getParts().get( 1 ) instanceof ExpressionMethod );
final ExpressionMethod expPart1 = (ExpressionMethod) exp.getExpressionLeftSide().getParts().get( 1 );
assertEquals( "methodToGetChild1",
expPart1.getName() );
assertTrue( exp.getExpressionLeftSide().getParts().get( 2 ) instanceof ExpressionMethod );
final ExpressionMethod expPart2 = (ExpressionMethod) exp.getExpressionLeftSide().getParts().get( 2 );
assertEquals( "methodToGetChild2",
expPart2.getName() );
assertTrue( exp.getExpressionLeftSide().getParts().get( 3 ) instanceof ExpressionField );
final ExpressionField expPart3 = (ExpressionField) exp.getExpressionLeftSide().getParts().get( 3 );
assertEquals( "field1",
expPart3.getName() );
}