@Test
public void testConditionalLogicalOp() {

    String inputExpression = "foo < 10 and bar = \"x\" or baz";
    BaseNode infix = parse( inputExpression );
    assertThat( infix, is( instanceOf( InfixOpNode.class ) ) );
    assertThat( infix.getResultType(), is( BuiltInType.BOOLEAN ) );
    assertThat( infix.getText(), is( inputExpression ) );
    InfixOpNode or = (InfixOpNode) infix;
    assertThat( or.getLeft(), is( instanceOf( InfixOpNode.class ) ) );
    assertThat( or.getLeft().getText(), is( "foo < 10 and bar = \"x\"" ) );
    assertThat( or.getOperator(), is( InfixOpNode.InfixOperator.OR ) );
    assertThat( or.getRight(), is( instanceOf( NameRefNode.class ) ) );
    assertThat( or.getRight().getText(), is( "baz" ) );
    InfixOpNode and = (InfixOpNode) or.getLeft();
    assertThat( and.getLeft(), is( instanceOf( InfixOpNode.class ) ) );
    assertThat( and.getLeft().getText(), is( "foo < 10" ) );
    assertThat( and.getOperator(), is( InfixOpNode.InfixOperator.AND ) );
    assertThat( and.getRight(), is( instanceOf( InfixOpNode.class ) ) );
    assertThat( and.getRight().getText(), is( "bar = \"x\"" ) );
}