@Test
public void scrollDiffChangesOfIssues_scrolls_only_diff_changes_of_selected_issues() {
IssueDto issue1 = db.issues().insertIssue();
IssueChangeDto diffChange1 = db.issues().insertChange(issue1, t -> t.setChangeType(TYPE_FIELD_CHANGE));
db.issues().insertChange(issue1, t -> t.setChangeType(TYPE_COMMENT));
IssueDto issue2 = db.issues().insertIssue();
IssueChangeDto diffChange2 = db.issues().insertChange(issue2, t -> t.setChangeType(TYPE_FIELD_CHANGE));
db.issues().insertChange(issue2, t -> t.setChangeType(TYPE_COMMENT));
IssueDto issue3 = db.issues().insertIssue();
IssueChangeDto diffChange31 = db.issues().insertChange(issue3, t -> t.setChangeType(TYPE_FIELD_CHANGE));
IssueChangeDto diffChange32 = db.issues().insertChange(issue3, t -> t.setChangeType(TYPE_FIELD_CHANGE));
db.issues().insertChange(issue3, t -> t.setChangeType(TYPE_COMMENT));
RecordingIssueChangeDtoResultHandler recordingHandler = new RecordingIssueChangeDtoResultHandler();
underTest.scrollDiffChangesOfIssues(db.getSession(), of(), recordingHandler.clear());
assertThat(recordingHandler.getDtoKeys()).isEmpty();
underTest.scrollDiffChangesOfIssues(db.getSession(), of("fooBarCacahuete"), recordingHandler.clear());
assertThat(recordingHandler.getDtoKeys()).isEmpty();
underTest.scrollDiffChangesOfIssues(db.getSession(), of(issue1.getKee()), recordingHandler.clear());
assertThat(recordingHandler.getDtoKeys()).containsOnly(diffChange1.getKey());
underTest.scrollDiffChangesOfIssues(db.getSession(), of(issue2.getKee()), recordingHandler.clear());
assertThat(recordingHandler.getDtoKeys()).containsOnly(diffChange2.getKey());
underTest.scrollDiffChangesOfIssues(db.getSession(), of(issue1.getKee(), issue3.getKee()), recordingHandler.clear());
assertThat(recordingHandler.getDtoKeys()).containsOnly(diffChange1.getKey(), diffChange31.getKey(), diffChange32.getKey());
}