private static Function<Map.Entry<String, FieldDiffs.Diff>, Changelog.Diff> toWsDiff(ChangeLogResults results) { return diff -> { FieldDiffs.Diff value = diff.getValue(); Changelog.Diff.Builder diffBuilder = Changelog.Diff.newBuilder(); String key = diff.getKey(); String oldValue = value.oldValue() != null ? value.oldValue().toString() : null; String newValue = value.newValue() != null ? value.newValue().toString() : null; if (key.equals(FILE)) { diffBuilder.setKey(key); ofNullable(results.getFileLongName(emptyToNull(newValue))).ifPresent(diffBuilder::setNewValue); ofNullable(results.getFileLongName(emptyToNull(oldValue))).ifPresent(diffBuilder::setOldValue); } else { diffBuilder.setKey(key.equals(TECHNICAL_DEBT) ? EFFORT_CHANGELOG_KEY : key); ofNullable(emptyToNull(newValue)).ifPresent(diffBuilder::setNewValue); ofNullable(emptyToNull(oldValue)).ifPresent(diffBuilder::setOldValue); } return diffBuilder.build(); }; }
private static Function<Map.Entry<String, FieldDiffs.Diff>, Changelog.Diff> toWsDiff(ChangeLogResults results) { return diff -> { FieldDiffs.Diff value = diff.getValue(); Changelog.Diff.Builder diffBuilder = Changelog.Diff.newBuilder(); String key = diff.getKey(); if (key.equals(FILE)) { diffBuilder.setKey(key); setNullable(results.getFileLongName(emptyToNull(value.newValue().toString())), diffBuilder::setNewValue); setNullable(results.getFileLongName(emptyToNull(value.oldValue().toString())), diffBuilder::setOldValue); } else { diffBuilder.setKey(key.equals(TECHNICAL_DEBT) ? EFFORT_CHANGELOG_KEY : key); setNullable(emptyToNull(value.newValue().toString()), diffBuilder::setNewValue); setNullable(emptyToNull(value.oldValue().toString()), diffBuilder::setOldValue); } return diffBuilder.build(); }; }
@Test public void return_changelog_when_no_old_value() { UserDto user = insertUser(); IssueDto issueDto = db.issues().insertIssue(newIssue()); userSession.logIn("john") .addMembership(db.getDefaultOrganization()) .addProjectPermission(USER, project, file); db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setUserUuid(user.getUuid()).setDiff("severity", null, "BLOCKER").setCreationDate(new Date())); ChangelogWsResponse result = call(issueDto.getKey()); assertThat(result.getChangelogList()).hasSize(1); assertThat(result.getChangelogList().get(0).getDiffsList().get(0).hasOldValue()).isFalse(); }
@Test public void return_changelog_when_no_new_value() { UserDto user = insertUser(); IssueDto issueDto = db.issues().insertIssue(newIssue()); userSession.logIn("john") .addMembership(db.getDefaultOrganization()) .addProjectPermission(USER, project, file); db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setUserUuid(user.getUuid()).setDiff("severity", "MAJOR", null).setCreationDate(new Date())); ChangelogWsResponse result = call(issueDto.getKey()); assertThat(result.getChangelogList()).hasSize(1); assertThat(result.getChangelogList().get(0).getDiffsList().get(0).hasNewValue()).isFalse(); }