@Test
public void invokeHashCode() {

    Object rule = new DummyRule();
    Rule proxy1 = RuleProxy.asRule(rule);
    Rule proxy2 = RuleProxy.asRule(proxy1);
    // @see Object#hashCode rule1
    assertEquals(proxy1.hashCode(), proxy1.hashCode());
    // @see Object#hashCode rule2
    assertEquals(proxy1, proxy2);
    assertEquals(proxy1.hashCode(), proxy2.hashCode());
    // @see Object#hashCode rule3
    assertNotEquals(rule, proxy1);
    assertNotEquals(rule.hashCode(), proxy1.hashCode());
}