ReviewersIT: use cleaner filter API

Change-Id: If11db9fe77676ae8e5fd14198fcbe0b9192af583
diff --git a/src/test/java/com/googlesource/gerrit/plugins/reviewers/ReviewersIT.java b/src/test/java/com/googlesource/gerrit/plugins/reviewers/ReviewersIT.java
index 6e2a256..ee0f4b0 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/reviewers/ReviewersIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/reviewers/ReviewersIT.java
@@ -36,8 +36,8 @@
 import com.google.gerrit.extensions.common.AccountInfo;
 import com.google.gerrit.extensions.restapi.RestApiException;
 import com.google.inject.Inject;
-import java.util.Arrays;
 import java.util.Collection;
+import java.util.List;
 import java.util.Set;
 import org.eclipse.jgit.lib.Config;
 import org.junit.Test;
@@ -50,7 +50,7 @@
   @Test
   public void addReviewers() throws Exception {
     TestAccount user2 = accountCreator.user2();
-    setReviewerFilters(newFilter("*", user, user2));
+    setReviewerFilters(filter("*").reviewer(user).reviewer(user2));
     String changeId = createChange().getChangeId();
     assertThat(reviewersFor(changeId))
         .containsExactlyElementsIn(ImmutableSet.of(user.id(), user2.id()));
@@ -59,7 +59,7 @@
   @Test
   public void addReviewersMatchMultipleSections() throws Exception {
     TestAccount user2 = accountCreator.user2();
-    setReviewerFilters(newFilter("*", user), newFilter("\"^a.txt\"", user2));
+    setReviewerFilters(filter("*").reviewer(user), filter("\"^a.txt\"").reviewer(user2));
     String changeId = createChange().getChangeId();
     assertThat(reviewersFor(changeId))
         .containsExactlyElementsIn(ImmutableSet.of(user.id(), user2.id()));
@@ -67,7 +67,7 @@
 
   @Test
   public void doNotAddReviewersFromNonMatchingFilters() throws Exception {
-    setReviewerFilters(newFilter("branch:master", user));
+    setReviewerFilters(filter("branch:master").reviewer(user));
     createBranch(BranchNameKey.create(project, "other-branch"));
     // Create a change that matches the filter section.
     createChange("refs/for/master");
@@ -78,7 +78,7 @@
 
   @Test
   public void addReviewersFromMatchingFilters() throws Exception {
-    setReviewerFilters(newFilter("branch:other-branch", user));
+    setReviewerFilters(filter("branch:other-branch").reviewer(user));
     // Create a change that doesn't match the filter section.
     createChange("refs/for/master");
     // The actual change we want to test
@@ -87,13 +87,13 @@
     assertThat(reviewersFor(changeId)).containsExactlyElementsIn(ImmutableSet.of(user.id()));
   }
 
-  private void setReviewerFilters(ReviewerFilterSection... filters) throws Exception {
+  private void setReviewerFilters(Filter... filters) throws Exception {
     fetch(testRepo, RefNames.REFS_CONFIG + ":refs/heads/config");
     testRepo.reset("refs/heads/config");
     Config cfg = new Config();
-    for (ReviewerFilterSection s : filters) {
+    for (Filter f : filters) {
       cfg.setStringList(
-          SECTION_FILTER, s.getFilter(), KEY_REVIEWER, Lists.newArrayList(s.getReviewers()));
+          SECTION_FILTER, f.filter, KEY_REVIEWER, f.reviewers);
     }
     pushFactory
         .create(admin.newIdent(), testRepo, "Add reviewers", FILENAME, cfg.toText())
@@ -102,11 +102,6 @@
     testRepo.reset(projectOperations.project(project).getHead("master"));
   }
 
-  private ReviewerFilterSection newFilter(String filter, TestAccount... reviewers) {
-    return new ReviewerFilterSection(
-        filter, Arrays.stream(reviewers).map(r -> r.email()).collect(toSet()));
-  }
-
   private Set<Account.Id> reviewersFor(String changeId)
       throws RestApiException, InterruptedException {
     Collection<AccountInfo> reviewers;
@@ -138,4 +133,23 @@
 
     assertThat(reviewers).isNull();
   }
+
+  private Filter filter(String filter) {
+    return new Filter(filter);
+  }
+
+  private class Filter {
+    List<String> reviewers;
+    String filter;
+
+    Filter(String filter) {
+      this.filter = filter;
+      this.reviewers = Lists.newArrayList();
+    }
+
+    Filter reviewer(TestAccount reviewer) {
+      reviewers.add(reviewer.email());
+      return this;
+    }
+  }
 }