@Test
    void testNotWithChildren() {
        final ExpressionOperator expressionOperator = ExpressionOperator.builder()
                .op(Op.NOT)
                .addTerm(ExpressionTerm.builder()
                        .field(DB_FIELD_NAME_1)
                        .condition(ExpressionTerm.Condition.EQUALS)
                        .value(FIELD_1_VALUE).build())
                .build();

        final Condition condition = doTest(expressionOperator);

        // NOT { field1=123, field2=456 } == not(field1=123) and not(field2=456)
        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("not (field1=123)");
    }
This ought to behave in a consistent way with ExpressionMatcher
stroom-db-util/src/test/java/stroom/db/util/TestCommonExpressionMapper.java