use of org.sonar.server.issue.IssueChangeWSSupport.Load in project sonarqube by SonarSource.
the class IssueChangeWSSupportTest method formatChangelog_returns_user_details_if_exists.
@Test
@UseDataProvider("loadAllOrChangelog")
public void formatChangelog_returns_user_details_if_exists(Load load) {
IssueDto issue1 = dbTester.issues().insertIssue();
UserDto user1 = dbTester.users().insertUser();
UserDto user2 = dbTester.users().insertUser(t -> t.setActive(false));
String uuid = randomAlphabetic(22);
dbTester.issues().insertChange(newFieldChange(issue1).setUserUuid(user1.getUuid()).setChangeData(new FieldDiffs().setDiff("f_change_1", "a", "b").toEncodedString()));
dbTester.issues().insertChange(newFieldChange(issue1).setUserUuid(uuid).setChangeData(new FieldDiffs().setDiff("f_change_2", "a", "b").toEncodedString()));
dbTester.issues().insertChange(newFieldChange(issue1).setUserUuid(user2.getUuid()).setChangeData(new FieldDiffs().setDiff("f_change_3", "a", "b").toEncodedString()));
FormattingContext formattingContext = underTest.newFormattingContext(dbTester.getSession(), singleton(issue1), load);
List<Changelog> wsChangelogList = underTest.formatChangelog(issue1, formattingContext).collect(Collectors.toList());
assertThat(wsChangelogList).extracting(Changelog::hasUser, t -> t.getDiffsList().iterator().next().getKey()).containsExactlyInAnyOrder(tuple(true, "f_change_1"), tuple(false, "f_change_2"), tuple(true, "f_change_3"));
assertThat(wsChangelogList.stream().filter(Changelog::hasUser)).extracting(Changelog::getUser, Changelog::getUserName, Changelog::getIsUserActive, Changelog::getAvatar).containsExactlyInAnyOrder(tuple(user1.getLogin(), user1.getName(), true, avatarResolver.create(user1)), tuple(user2.getLogin(), user2.getName(), false, avatarResolver.create(user2)));
}
use of org.sonar.server.issue.IssueChangeWSSupport.Load in project sonarqube by SonarSource.
the class IssueChangeWSSupportTest method formatChangelog_returns_empty_if_context_has_no_changeLog_for_specified_IssueDto.
@Test
@UseDataProvider("loadAllOrChangelog")
public void formatChangelog_returns_empty_if_context_has_no_changeLog_for_specified_IssueDto(Load load) {
IssueDto issue1 = dbTester.issues().insertIssue();
IssueDto issue2 = dbTester.issues().insertIssue();
List<IssueChangeDto> comments = IntStream.range(0, 1 + RANDOM.nextInt(20)).mapToObj(i -> newComment(issue1).setKey("comment_" + i)).collect(Collectors.toList());
List<IssueChangeDto> fieldChanges = IntStream.range(0, 1 + RANDOM.nextInt(20)).mapToObj(i -> newFieldChange(issue1).setChangeData(new FieldDiffs().setDiff("f_change_" + i, null, null).toEncodedString())).collect(Collectors.toList());
insertInRandomOrder(comments, fieldChanges);
FormattingContext formattingContext = underTest.newFormattingContext(dbTester.getSession(), singleton(issue1), Load.CHANGE_LOG);
assertThat(underTest.formatChangelog(issue2, formattingContext)).isEmpty();
assertThat(underTest.formatChangelog(issue1, formattingContext)).isNotEmpty();
}
Aggregations