@Test
public void testExpressionList() {

    // TODO review this test is potentially wrong as the list is not homogeneous
    String inputExpression = "[ 10, foo * bar, true ]";
    BaseNode list = parse( inputExpression );
    assertThat( list, is( instanceOf( ListNode.class ) ) );
    assertThat( list.getResultType(), is( BuiltInType.LIST ) );
    assertThat( list.getText(), is( "10, foo * bar, true" ) );
    ListNode ln = (ListNode) list;
    assertThat( ln.getElements().size(), is( 3 ) );
    assertThat( ln.getElements().get( 0 ), is( instanceOf( NumberNode.class ) ) );
    assertThat( ln.getElements().get( 1 ), is( instanceOf( InfixOpNode.class ) ) );
    assertThat( ln.getElements().get( 2 ), is( instanceOf( BooleanNode.class ) ) );
}