AlarmExpression { @JsonCreator public static AlarmExpression of(String expression) { return new AlarmExpression(expression); } AlarmExpression(String expression); @JsonCreator static AlarmExpression of(String expression); @Override boolean equals(Object obj); boolean evaluate(Map<AlarmSubExpression, Boolean> subExpressionValues); @JsonIgnore String getExpression(); @JsonIgnore Object getExpressionTree(); List<AlarmSubExpression> getSubExpressions(); boolean isDeterministic(); @Override int hashCode(); @Override String toString();  }
@Test(expectedExceptions = IllegalArgumentException.class) public void shouldNotParseInvalidExpressionWrongRightOperand() { AlarmExpression.of("count(log.error{},deterministic=foo,20) > 5"); }
@Test(expectedExceptions = IllegalArgumentException.class) public void shouldNotParseInvalidExpressionMalformedDeterministicKeyword() { AlarmExpression.of("count(log.error{},determ=true,20) > 5"); }