@Override
    public int hashCode() {
        int result = key != null ? key.hashCode() : 0;
        result = 31 * result + (value != null ? value.hashCode() : 0);
        result = 31 * result + (int) (ttlMillis ^ (ttlMillis >>> 32));
        return result;
    }
@Test
    public void testHashCode() {
        assertEquals(replicatedRecord.hashCode(), replicatedRecord.hashCode());
        assertEquals(replicatedRecord.hashCode(), replicatedRecordSameAttributes.hashCode());

        assumeDifferentHashCodes();
        assertNotEquals(replicatedRecord.hashCode(), replicatedRecordOtherKey.hashCode());
        assertNotEquals(replicatedRecord.hashCode(), replicatedRecordOtherValue.hashCode());
        assertNotEquals(replicatedRecord.hashCode(), replicatedRecordOtherTtl.hashCode());
    }