@Test
    void testNesting() {
        final ExpressionOperator innerOr = ExpressionOperator.builder()
                .op(Op.OR)
                .addTerm(ExpressionTerm.builder()
                        .field(DB_FIELD_NAME_1)
                        .condition(ExpressionTerm.Condition.EQUALS)
                        .value(FIELD_1_VALUE).build())
                .addTerm(ExpressionTerm.builder()
                        .field(DB_FIELD_NAME_2)
                        .condition(ExpressionTerm.Condition.EQUALS)
                        .value(FIELD_2_VALUE).build())
                .build();

        final ExpressionOperator expressionOperator = ExpressionOperator.builder()
                .addOperator(innerOr)
                .addTerm(ExpressionTerm.builder()
                        .field(DB_FIELD_NAME_3)
                        .condition(ExpressionTerm.Condition.EQUALS)
                        .value(FIELD_3_VALUE).build())
                .build();

        final Condition condition = doTest(expressionOperator);

        // No way to inspect the conditon tree so have to do contains on toString
        // No way to check it is an OR either
        assertThat(condition.toString())
                .contains(conditionString(DB_FIELD_NAME_1, FIELD_1_VALUE));
        assertThat(condition.toString())
                .contains(conditionString(DB_FIELD_NAME_2, FIELD_2_VALUE));
        assertThat(condition.toString())
                .contains(conditionString(DB_FIELD_NAME_3, FIELD_3_VALUE));
    }
This ought to behave in a consistent way with ExpressionMatcher
stroom-db-util/src/test/java/stroom/db/util/TestCommonExpressionMapper.java