### Question:
JWTData { @Override public int hashCode() { int result = getIssuer() != null ? getIssuer().hashCode() : 0; result = 31 * result + (getSubject() != null ? getSubject().hashCode() : 0); result = 31 * result + (getAudience() != null ? getAudience().hashCode() : 0); result = 31 * result + (getKeyId() != null ? getKeyId().hashCode() : 0); return result; } JWTData(String issuer, String subject, String audience, String keyId); String getIssuer(); String getSubject(); String getAudience(); String getKeyId(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void hashCodeForSameObjectIsEqual() throws Exception { JWTData actual = new JWTData("a", "b", "c", "d"); assertEquals(actual.hashCode(), actual.hashCode()); }
@Test public void hashCodeForDifferentObjectWithSameValuesIsEqual() throws Exception { JWTData actual = new JWTData("a", "b", "c", "d"); JWTData expected = new JWTData("a", "b", "c", "d"); assertEquals(expected.hashCode(), actual.hashCode()); }