public static IssueChangeDto of(String issueKey, FieldDiffs diffs) { IssueChangeDto dto = newDto(issueKey); dto.setChangeType(IssueChangeDto.TYPE_FIELD_CHANGE); dto.setChangeData(diffs.toEncodedString()); dto.setUserUuid(diffs.userUuid()); Date createdAt = requireNonNull(diffs.creationDate(), "Diffs created at must not be null"); dto.setIssueChangeCreationDate(createdAt.getTime()); return dto; }
public static IssueChangeDto of(DefaultIssueComment comment) { IssueChangeDto dto = newDto(comment.issueKey()); dto.setKey(comment.key()); dto.setChangeType(IssueChangeDto.TYPE_COMMENT); dto.setChangeData(comment.markdownText()); dto.setUserUuid(comment.userUuid()); Date createdAt = requireNonNull(comment.createdAt(), "Comment created at must not be null"); dto.setIssueChangeCreationDate(createdAt.getTime()); return dto; }
@Test public void select_comment_by_key() { IssueDto issue = db.issues().insertIssue(); IssueChangeDto issueChange = db.issues().insertChange(issue, c -> c.setChangeType(TYPE_COMMENT)); db.issues().insertChange(issue, c -> c.setChangeType(TYPE_COMMENT)); Optional<IssueChangeDto> issueChangeDto = underTest.selectCommentByKey(db.getSession(), issueChange.getKey()); assertThat(issueChangeDto).isPresent(); assertThat(issueChangeDto.get().getKey()).isEqualTo(issueChange.getKey()); assertThat(issueChangeDto.get().getChangeType()).isEqualTo(TYPE_COMMENT); assertThat(issueChangeDto.get().getUserUuid()).isEqualTo(issueChange.getUserUuid()); assertThat(issueChangeDto.get().getChangeData()).isEqualTo(issueChange.getChangeData()); assertThat(issueChangeDto.get().getIssueChangeCreationDate()).isNotNull(); assertThat(issueChangeDto.get().getCreatedAt()).isNotNull(); assertThat(issueChangeDto.get().getUpdatedAt()).isNotNull(); }
@Test public void select_issue_changelog_from_issue_key() { IssueDto issue1 = db.issues().insertIssue(); db.issues().insertChange(issue1, c -> c.setChangeType(TYPE_FIELD_CHANGE).setChangeData("severity=MAJOR|BLOCKER")); IssueDto issue2 = db.issues().insertIssue(); db.issues().insertChange(issue2); List<FieldDiffs> changelog = underTest.selectChangelogByIssue(db.getSession(), issue1.getKey()); assertThat(changelog).hasSize(1); assertThat(changelog.get(0).diffs()).hasSize(1); assertThat(changelog.get(0).diffs().get("severity").newValue()).isEqualTo("BLOCKER"); assertThat(changelog.get(0).diffs().get("severity").oldValue()).isEqualTo("MAJOR"); assertThat(underTest.selectChangelogByIssue(db.getSession(), "unknown")).isEmpty(); }
@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()); }
public static IssueChangeDto newIssuechangeDto(IssueDto issue) { return new IssueChangeDto() .setKey(UuidFactoryFast.getInstance().create()) .setIssueKey(issue.getKey()) .setChangeData("data_" + randomAlphanumeric(40)) .setChangeType(IssueChangeDto.TYPE_FIELD_CHANGE) .setUserUuid("userUuid_" + randomAlphanumeric(40)) .setIssueChangeCreationDate(nextLong()) .setCreatedAt(nextLong()) .setUpdatedAt(nextLong()); }
@Test public void scrollDiffChangesOfIssues_orders_changes_by_issue_and_then_creationDate() { IssueDto issue1 = db.issues().insertIssue(); IssueChangeDto[] diffChanges = { db.issues().insertChange(issue1, t -> t.setChangeType(TYPE_FIELD_CHANGE).setCreatedAt(1L).setIssueChangeCreationDate(50L)), db.issues().insertChange(issue1, t -> t.setChangeType(TYPE_FIELD_CHANGE).setCreatedAt(2L).setIssueChangeCreationDate(20L)), db.issues().insertChange(issue1, t -> t.setChangeType(TYPE_FIELD_CHANGE).setCreatedAt(3L).setIssueChangeCreationDate(30L)), db.issues().insertChange(issue1, t -> t.setChangeType(TYPE_FIELD_CHANGE).setCreatedAt(4L).setIssueChangeCreationDate(80L)), db.issues().insertChange(issue1, t -> t.setChangeType(TYPE_FIELD_CHANGE).setCreatedAt(5L).setIssueChangeCreationDate(10L)), }; RecordingIssueChangeDtoResultHandler recordingHandler = new RecordingIssueChangeDtoResultHandler(); underTest.scrollDiffChangesOfIssues(db.getSession(), of(issue1.getKee()), recordingHandler.clear()); assertThat(recordingHandler.getDtoKeys()).containsExactly( diffChanges[3].getKey(), diffChanges[0].getKey(), diffChanges[2].getKey(), diffChanges[1].getKey(), diffChanges[4].getKey()); }
.setKey("COMMENT-ABCD") .setChangeData("*My comment*") .setChangeType(IssueChangeDto.TYPE_COMMENT) .setUserUuid(john.getUuid()) .setIssueChangeCreationDate(parseDateTime("2014-09-09T12:00:00+0000").getTime())); .setKey("COMMENT-ABCE") .setChangeData("Another comment") .setChangeType(IssueChangeDto.TYPE_COMMENT) .setUserUuid(fabrice.getUuid()) .setIssueChangeCreationDate(parseDateTime("2014-09-10T12:00:00+0000").getTime()));
.setKey("COMMENT-ABCD") .setChangeData("*My comment*") .setChangeType(IssueChangeDto.TYPE_COMMENT) .setUserUuid(john.getUuid()) .setCreatedAt(parseDateTime("2014-09-09T12:00:00+0000").getTime())); .setKey("COMMENT-ABCE") .setChangeData("Another comment") .setChangeType(IssueChangeDto.TYPE_COMMENT) .setUserUuid(fabrice.getUuid()) .setCreatedAt(parseDateTime("2014-09-10T19:10:03+0000").getTime()));
public static IssueChangeDto of(String issueKey, FieldDiffs diffs) { IssueChangeDto dto = newDto(issueKey); dto.setChangeType(IssueChangeDto.TYPE_FIELD_CHANGE); dto.setChangeData(diffs.toString()); dto.setUserLogin(diffs.userLogin()); dto.setIssueChangeCreationDate(diffs.creationDate() == null ? null : diffs.creationDate().getTime()); return dto; }
public static IssueChangeDto of(DefaultIssueComment comment) { IssueChangeDto dto = newDto(comment.issueKey()); dto.setKey(comment.key()); dto.setChangeType(IssueChangeDto.TYPE_COMMENT); dto.setChangeData(comment.markdownText()); dto.setUserLogin(comment.userLogin()); dto.setIssueChangeCreationDate(comment.createdAt() == null ? null : comment.createdAt().getTime()); return dto; }