@Override
  public int hashCode() {
    return Objects.hash(change, changedIssues);
  }
@Test
  public void hashcode_is_based_on_change_and_issues() {
    AnalysisChange analysisChange = new AnalysisChange(new Random().nextLong());
    ChangedIssue changedIssue = IssuesChangesNotificationBuilderTesting.newChangedIssue("doo", IssuesChangesNotificationBuilderTesting.newProject("prj"),
      newRandomNotAHotspotRule("rul"));
    ChangesOnMyIssuesNotification underTest = new ChangesOnMyIssuesNotification(analysisChange, ImmutableSet.of(changedIssue));

    assertThat(underTest.hashCode())
      .isEqualTo(new ChangesOnMyIssuesNotification(analysisChange, ImmutableSet.of(changedIssue)).hashCode())
      .isNotEqualTo(mock(Notification.class).hashCode())
      .isNotEqualTo(new ChangesOnMyIssuesNotification(new AnalysisChange(analysisChange.getDate() + 10), ImmutableSet.of(changedIssue)).hashCode())
      .isNotEqualTo(new ChangesOnMyIssuesNotification(analysisChange, ImmutableSet.of())).hashCode();
  }