ExpressionEvaluatedEvent { @Override public int hashCode() { return Objects.hashCode(id, type, result, error); } ExpressionEvaluatedEvent(final int id, final ExpressionType type, final String result, final String error); static ExpressionEvaluatedEvent from(final Map<String, Object> eventMap); int getId(); ExpressionType getType(); Optional<String> getResult(); Optional<String> getError(); @Override boolean equals(final Object obj); @Override int hashCode();  }
@Test public void hashCodeTests() { assertThat(new ExpressionEvaluatedEvent(1, ExpressionType.ROBOT, "result", "error").hashCode()) .isEqualTo(new ExpressionEvaluatedEvent(1, ExpressionType.ROBOT, "result", "error").hashCode()); assertThat(new ExpressionEvaluatedEvent(2, ExpressionType.PYTHON, "result", null).hashCode()) .isEqualTo(new ExpressionEvaluatedEvent(2, ExpressionType.PYTHON, "result", null).hashCode()); assertThat(new ExpressionEvaluatedEvent(3, ExpressionType.VARIABLE, null, "error").hashCode()) .isEqualTo(new ExpressionEvaluatedEvent(3, ExpressionType.VARIABLE, null, "error").hashCode()); }