@Test
public void testForExpression() {

    String inputExpression = "for item in order.items return item.price * item.quantity";
    BaseNode forbase = parse( inputExpression );
    assertThat( forbase, is( instanceOf( ForExpressionNode.class ) ) );
    assertThat( forbase.getText(), is( inputExpression ) );
    assertThat( forbase.getResultType(), is( BuiltInType.LIST ) );
    ForExpressionNode forExpr = (ForExpressionNode) forbase;
    assertThat( forExpr.getIterationContexts().size(), is( 1 ) );
    assertThat( forExpr.getExpression(), is( instanceOf( InfixOpNode.class ) ) );
    assertThat( forExpr.getExpression().getText(), is( "item.price * item.quantity" ) );
    IterationContextNode ic = forExpr.getIterationContexts().get( 0 );
    assertThat( ic.getName().getText(), is("item") );
    assertThat( ic.getExpression(), is( instanceOf( QualifiedNameNode.class ) ) );
    assertThat( ic.getExpression().getText(), is("order.items") );
}