@Override
    public ExpressionEvaluatorResult evaluateUnaryExpression(String rawExpression, Object resultValue, Class<?> resultClass) {
        Map<String, Object> params = new HashMap<>();
        params.put(ACTUAL_VALUE_IDENTIFIER, resultValue);

        Object expressionResult = compileAndExecute(rawExpression, params);
        if (!(expressionResult instanceof Boolean)) {
            // try to compare via compare/equals operators
            return ExpressionEvaluatorResult.of(compareValues(expressionResult, resultValue));
        }
        return ExpressionEvaluatorResult.of((boolean) expressionResult);
    }
@Test
    public void evaluateUnaryExpression() {
        assertThat(evaluator.evaluateUnaryExpression(mvelExpression("java.util.Objects.equals(" + ACTUAL_VALUE_IDENTIFIER + ", \"Test\")"), "Test", String.class)).is(successful);
        assertThat(evaluator.evaluateUnaryExpression(mvelExpression("java.util.Objects.equals(" + ACTUAL_VALUE_IDENTIFIER + ", " + "\"Test\")"), "Test1", String.class)).is(notSuccessful);
        assertThat(evaluator.evaluateUnaryExpression(mvelExpression("1"), 1, Integer.class)).is(successful);
        assertThat(evaluator.evaluateUnaryExpression(mvelExpression("2"), 1, Integer.class)).is(notSuccessful);

        assertThat(evaluator.evaluateUnaryExpression(mvelExpression(""), null, String.class)).is(successful);
        assertThat(evaluator.evaluateUnaryExpression(mvelExpression(""), "", String.class)).is(notSuccessful);

        assertThat(evaluator.evaluateUnaryExpression(mvelExpression(null), null, String.class)).is(successful);
        assertThat(evaluator.evaluateUnaryExpression(mvelExpression(null), "null", String.class)).is(notSuccessful);

        assertThat(evaluator.evaluateUnaryExpression(mvelExpression("\"\""), "", String.class)).is(successful);
        assertThat(evaluator.evaluateUnaryExpression(mvelExpression(null), "", String.class)).is(notSuccessful);

        assertThat(evaluator.evaluateUnaryExpression(mvelExpression(ACTUAL_VALUE_IDENTIFIER + " == 123"), 123, Integer.class)).is(successful);
        assertThat(evaluator.evaluateUnaryExpression(mvelExpression(ACTUAL_VALUE_IDENTIFIER + " != 123"), 321, Integer.class)).is(successful);
        assertThat(evaluator.evaluateUnaryExpression(mvelExpression(ACTUAL_VALUE_IDENTIFIER + " == 123"), 321, Integer.class)).is(notSuccessful);
        assertThat(evaluator.evaluateUnaryExpression(mvelExpression(ACTUAL_VALUE_IDENTIFIER + " != 123"), 123, Integer.class)).is(notSuccessful);

        assertThatThrownBy(() -> evaluator.evaluateUnaryExpression(null, "", String.class))
                .isInstanceOf(IllegalArgumentException.class)
                .hasMessageStartingWith("Malformed MVEL expression");
    }