From 4f71623342b7dc2f11700790ad02c5cdb8ee413d Mon Sep 17 00:00:00 2001
From: Youssef Elghareeb <ghareeb@google.com>
Date: Wed, 25 Mar 2020 22:40:30 +0100
Subject: [PATCH] Add a test for setting the reviewed flag with multiple patch
 sets

The test hits the untested logic in
com.google.gerrit.server.restapi.change.Files.ListFiles when requesting
the list of reviewed files of a patch set where no files have been
reviewed by the given user.

Change-Id: I1b1f8593810384e503a9def44416b0ad9db79694
---
 .../acceptance/api/revision/RevisionIT.java    | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/javatests/com/google/gerrit/acceptance/api/revision/RevisionIT.java b/javatests/com/google/gerrit/acceptance/api/revision/RevisionIT.java
index 70fcfc4d70..f001a749fc 100644
--- a/javatests/com/google/gerrit/acceptance/api/revision/RevisionIT.java
+++ b/javatests/com/google/gerrit/acceptance/api/revision/RevisionIT.java
@@ -1084,6 +1084,24 @@ public class RevisionIT extends AbstractDaemonTest {
     assertThat(gApi.changes().id(r.getChangeId()).current().reviewed()).isEmpty();
   }
 
+  @Test
+  public void setReviewedFlagWithMultiplePatchSets() throws Exception {
+    PushOneCommit push = pushFactory.create(admin.newIdent(), testRepo);
+    PushOneCommit.Result r1 = push.to("refs/for/master");
+
+    gApi.changes().id(r1.getChangeId()).current().setReviewed(PushOneCommit.FILE_NAME, true);
+
+    /** Amending the change will result in the file being un-reviewed in the latest patchset */
+    PushOneCommit.Result r2 = amendChange(r1.getChangeId());
+
+    assertThat(gApi.changes().id(r2.getChangeId()).current().reviewed()).isEmpty();
+
+    gApi.changes().id(r2.getChangeId()).current().setReviewed(PushOneCommit.FILE_NAME, true);
+
+    assertThat(Iterables.getOnlyElement(gApi.changes().id(r2.getChangeId()).current().reviewed()))
+        .isEqualTo(PushOneCommit.FILE_NAME);
+  }
+
   @Test
   public void setUnsetReviewedFlagByFileApi() throws Exception {
     PushOneCommit push = pushFactory.create(admin.newIdent(), testRepo);