use of com.google.gerrit.extensions.common.RobotCommentInfo in project gerrit by GerritCodeReview.
the class RobotCommentsIT method fixOnPreviousPatchSetWithoutChangeEditCannotBeApplied.
@Test
public void fixOnPreviousPatchSetWithoutChangeEditCannotBeApplied() throws Exception {
fixReplacementInfo.path = FILE_NAME;
fixReplacementInfo.replacement = "Modified content";
fixReplacementInfo.range = createRange(3, 1, 3, 3);
testCommentHelper.addRobotComment(changeId, withFixRobotCommentInput);
List<RobotCommentInfo> robotCommentInfos = getRobotComments();
// Remember patch set and add another one.
String previousRevision = gApi.changes().id(changeId).get().currentRevision;
amendChange(changeId);
List<String> fixIds = getFixIds(robotCommentInfos);
String fixId = Iterables.getOnlyElement(fixIds);
ResourceConflictException thrown = assertThrows(ResourceConflictException.class, () -> gApi.changes().id(changeId).revision(previousRevision).applyFix(fixId));
assertThat(thrown).hasMessageThat().contains("current");
}
use of com.google.gerrit.extensions.common.RobotCommentInfo in project gerrit by GerritCodeReview.
the class RobotCommentsIT method getFixPreviewAddNewLineAtEnd.
@Test
public void getFixPreviewAddNewLineAtEnd() throws Exception {
FixReplacementInfo replacement = new FixReplacementInfo();
replacement.path = FILE_NAME3;
replacement.range = createRange(2, 8, 2, 8);
replacement.replacement = "\n";
FixSuggestionInfo fixSuggestion = createFixSuggestionInfo(replacement);
RobotCommentInput commentInput = TestCommentHelper.createRobotCommentInput(FILE_NAME3, fixSuggestion);
testCommentHelper.addRobotComment(changeId, commentInput);
List<RobotCommentInfo> robotCommentInfos = getRobotComments();
List<String> fixIds = getFixIds(robotCommentInfos);
String fixId = Iterables.getOnlyElement(fixIds);
Map<String, DiffInfo> fixPreview = gApi.changes().id(changeId).current().getFixPreview(fixId);
assertThat(fixPreview).hasSize(1);
assertThat(fixPreview).containsKey(FILE_NAME3);
DiffInfo diff = fixPreview.get(FILE_NAME3);
assertThat(diff).metaA().totalLineCount().isEqualTo(2);
// Original file doesn't have EOL marker at the end of file.
// Due to the additional EOL mark diff has one additional line
// This behavior is in line with ordinary get diff API.
assertThat(diff).metaB().totalLineCount().isEqualTo(3);
assertThat(diff).content().hasSize(2);
assertThat(diff).content().element(0).commonLines().containsExactly("1st line");
assertThat(diff).content().element(1).linesOfA().containsExactly("2nd line");
assertThat(diff).content().element(1).linesOfB().containsExactly("2nd line", "");
}
use of com.google.gerrit.extensions.common.RobotCommentInfo in project gerrit by GerritCodeReview.
the class RobotCommentsIT method fixWithTwoCloseReplacementsOnSameFileCanBeApplied.
@Test
public void fixWithTwoCloseReplacementsOnSameFileCanBeApplied() throws Exception {
FixReplacementInfo fixReplacementInfo1 = new FixReplacementInfo();
fixReplacementInfo1.path = FILE_NAME;
fixReplacementInfo1.range = createRange(2, 0, 3, 0);
fixReplacementInfo1.replacement = "First modification\n";
FixReplacementInfo fixReplacementInfo2 = new FixReplacementInfo();
fixReplacementInfo2.path = FILE_NAME;
fixReplacementInfo2.range = createRange(3, 0, 4, 0);
fixReplacementInfo2.replacement = "Some other modified content\n";
FixSuggestionInfo fixSuggestionInfo = createFixSuggestionInfo(fixReplacementInfo1, fixReplacementInfo2);
withFixRobotCommentInput.fixSuggestions = ImmutableList.of(fixSuggestionInfo);
testCommentHelper.addRobotComment(changeId, withFixRobotCommentInput);
List<RobotCommentInfo> robotCommentInfos = getRobotComments();
List<String> fixIds = getFixIds(robotCommentInfos);
String fixId = Iterables.getOnlyElement(fixIds);
gApi.changes().id(changeId).current().applyFix(fixId);
Optional<BinaryResult> file = gApi.changes().id(changeId).edit().getFile(FILE_NAME);
BinaryResultSubject.assertThat(file).value().asString().isEqualTo("First line\nFirst modification\nSome other modified content\nFourth line\nFifth line\n" + "Sixth line\nSeventh line\nEighth line\nNinth line\nTenth line\n");
}
use of com.google.gerrit.extensions.common.RobotCommentInfo in project gerrit by GerritCodeReview.
the class RobotCommentsIT method createdChangeEditIsBasedOnCurrentPatchSet.
@Test
public void createdChangeEditIsBasedOnCurrentPatchSet() throws Exception {
String currentRevision = gApi.changes().id(changeId).get().currentRevision;
fixReplacementInfo.path = FILE_NAME;
fixReplacementInfo.replacement = "Modified content";
fixReplacementInfo.range = createRange(3, 1, 3, 3);
testCommentHelper.addRobotComment(changeId, withFixRobotCommentInput);
List<RobotCommentInfo> robotCommentInfos = getRobotComments();
List<String> fixIds = getFixIds(robotCommentInfos);
String fixId = Iterables.getOnlyElement(fixIds);
EditInfo editInfo = gApi.changes().id(changeId).current().applyFix(fixId);
assertThat(editInfo).baseRevision().isEqualTo(currentRevision);
}
use of com.google.gerrit.extensions.common.RobotCommentInfo in project gerrit by GerritCodeReview.
the class ListChangeRobotComments method apply.
@Override
public Response<Map<String, List<RobotCommentInfo>>> apply(ChangeResource rsrc) throws AuthException, PermissionBackendException {
ChangeData cd = changeDataFactory.create(rsrc.getNotes());
Map<String, List<RobotCommentInfo>> robotCommentsMap = commentJson.get().setFillAccounts(true).setFillPatchSet(true).newRobotCommentFormatter().format(commentsUtil.robotCommentsByChange(cd.notes()));
List<RobotCommentInfo> commentInfos = robotCommentsMap.values().stream().flatMap(List::stream).collect(toList());
List<ChangeMessage> changeMessages = changeMessagesUtil.byChange(rsrc.getNotes());
CommentsUtil.linkCommentsToChangeMessages(commentInfos, changeMessages, false);
return Response.ok(robotCommentsMap);
}
Aggregations