CodeOwnersOnAddReviewerIT: Test adding multiple code owners as reviewers
Verify that one change message is posted per code owner, when multiple
code owners are added as reviewers at once.
Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: Iec5246e0cb0ee2a8aa2ea964ef2b5fb9dd82af68
diff --git a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnersOnAddReviewerIT.java b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnersOnAddReviewerIT.java
index 173b74a..1e94d2b 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnersOnAddReviewerIT.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnersOnAddReviewerIT.java
@@ -19,6 +19,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
+import com.google.gerrit.acceptance.TestAccount;
import com.google.gerrit.acceptance.config.GerritConfig;
import com.google.gerrit.entities.BranchNameKey;
import com.google.gerrit.extensions.api.changes.ReviewInput;
@@ -325,6 +326,44 @@
}
@Test
+ public void multipleCodeOwnerAddedAsReviewersAtTheSameTime() throws Exception {
+ TestAccount user2 = accountCreator.user2();
+
+ codeOwnerConfigOperations
+ .newCodeOwnerConfig()
+ .project(project)
+ .branch("master")
+ .folderPath("/foo/")
+ .addCodeOwnerEmail(user.email())
+ .addCodeOwnerEmail(user2.email())
+ .create();
+
+ String path = "foo/bar.baz";
+ String changeId = createChange("Test Change", path, "file content").getChangeId();
+
+ // Add code owners 'user' and 'user2' as reviewers.
+ gApi.changes()
+ .id(changeId)
+ .current()
+ .review(ReviewInput.create().reviewer(user.email()).reviewer(user2.email()));
+
+ // We expect that 2 change messages are added:
+ // 1. change message listing the paths owned by the new reviewer 'user'
+ // 2. change message listing the paths owned by the new reviewer 'user2'
+ Collection<ChangeMessageInfo> messages = gApi.changes().id(changeId).get().messages;
+ assertThat(Iterables.get(messages, messages.size() - 2).message)
+ .isEqualTo(
+ String.format(
+ "%s, who was added as reviewer owns the following files:\n* %s\n",
+ AccountTemplateUtil.getAccountTemplate(user.id()), path));
+ assertThat(Iterables.getLast(messages).message)
+ .isEqualTo(
+ String.format(
+ "%s, who was added as reviewer owns the following files:\n* %s\n",
+ AccountTemplateUtil.getAccountTemplate(user2.id()), path));
+ }
+
+ @Test
public void reviewerAndCodeOwnerApprovalAddedAtTheSameTime() throws Exception {
codeOwnerConfigOperations
.newCodeOwnerConfig()