diff --git a/src/main/java/pl/touk/sputnik/connector/gerrit/ReviewInputBuilder.java b/src/main/java/pl/touk/sputnik/connector/gerrit/ReviewInputBuilder.java index 972ec6e8..f543ef4d 100644 --- a/src/main/java/pl/touk/sputnik/connector/gerrit/ReviewInputBuilder.java +++ b/src/main/java/pl/touk/sputnik/connector/gerrit/ReviewInputBuilder.java @@ -2,8 +2,11 @@ import com.google.common.base.Joiner; import com.google.gerrit.extensions.api.changes.ReviewInput; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; +import java.util.stream.Collectors; +import java.util.stream.Stream; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -11,14 +14,7 @@ import pl.touk.sputnik.review.Review; import pl.touk.sputnik.review.ReviewFile; -import java.util.HashMap; -import java.util.List; -import java.util.stream.Collectors; - -@AllArgsConstructor -@Slf4j public class ReviewInputBuilder { - private static final String MESSAGE_SEPARATOR = ". "; @NotNull @@ -29,23 +25,27 @@ public ReviewInput toReviewInput(@NotNull Review review, @Nullable String tag) { if (StringUtils.isNotBlank(tag)) { reviewInput.tag = tag; } - reviewInput.comments = review.getFiles().stream() + reviewInput.robotComments = review.getFiles().stream() .collect(Collectors.toMap(ReviewFile::getReviewFilename, this::buildFileComments)); return reviewInput; } @NotNull - private List buildFileComments(@NotNull ReviewFile reviewFile) { + private List buildFileComments(@NotNull ReviewFile reviewFile) { return reviewFile.getComments().stream() - .map(this::buildCommentInput) + .flatMap((Comment comment) -> Stream.of(buildCommentInput(comment))) .collect(Collectors.toList()); } @NotNull - private ReviewInput.CommentInput buildCommentInput(Comment comment) { - ReviewInput.CommentInput commentInput = new ReviewInput.CommentInput(); + private ReviewInput.RobotCommentInput buildCommentInput(Comment comment) { + ReviewInput.RobotCommentInput commentInput = new ReviewInput.RobotCommentInput(); + + commentInput.robotId = "sputnik"; + commentInput.robotRunId = UUID.randomUUID().toString(); commentInput.line = comment.getLine(); commentInput.message = comment.getMessage(); return commentInput; } + } diff --git a/src/test/java/pl/touk/sputnik/connector/gerrit/ReviewInputBuilderTest.java b/src/test/java/pl/touk/sputnik/connector/gerrit/ReviewInputBuilderTest.java index 4799769f..ad16e333 100644 --- a/src/test/java/pl/touk/sputnik/connector/gerrit/ReviewInputBuilderTest.java +++ b/src/test/java/pl/touk/sputnik/connector/gerrit/ReviewInputBuilderTest.java @@ -1,6 +1,10 @@ package pl.touk.sputnik.connector.gerrit; +import static org.assertj.core.api.Assertions.assertThat; + import com.google.gerrit.extensions.api.changes.ReviewInput; +import com.google.gerrit.extensions.api.changes.ReviewInput.RobotCommentInput; +import java.util.List; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; @@ -11,8 +15,6 @@ import pl.touk.sputnik.configuration.ConfigurationBuilder; import pl.touk.sputnik.review.Review; -import static org.assertj.core.api.Assertions.assertThat; - @ExtendWith(MockitoExtension.class) class ReviewInputBuilderTest { @@ -28,10 +30,15 @@ void shouldBuildReviewInput() { ReviewInput reviewInput = reviewInputBuilder.toReviewInput(review, TAG); assertThat(reviewInput.message).isEqualTo("Total 8 violations found"); - assertThat(reviewInput.comments).hasSize(4); + assertThat(reviewInput.comments).isNull(); + assertThat(reviewInput.robotComments).hasSize(4); assertThat(reviewInput.tag).isEqualTo(TAG); - assertThat(reviewInput.comments.get("filename1")).hasSize(2); - assertThat(reviewInput.comments.get("filename1").get(0).message).isEqualTo("test1"); + List file1comments = reviewInput.robotComments.get("filename1"); + assertThat(file1comments).hasSize(2); + RobotCommentInput comment1 = file1comments.get(0); + assertThat(comment1.message).isEqualTo("test1"); + assertThat(comment1.robotId).isEqualTo("sputnik"); + assertThat(comment1.robotRunId).isNotEmpty(); assertThat(reviewInput.labels.get("Code-Review")).isEqualTo((short) 1); }