Unroll singly/batch AddReviewerSender tests
Ideally this could be accommodated by the test runner, but this class
hierarchy is annotated with @ConfigSuite and that doesn't play well with
@Parameterized.
We could produce the behavior we want with @ConfigSuite, but we intend
to merge this class with many others, and it doesn't make sense to run
all those methods twice just for the sake of a small subset of
AddReviewerSender tests.
Change-Id: I351c680810d209f1588388292b81211ae71e1062
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/mail/AddReviewerSenderIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/mail/AddReviewerSenderIT.java
index 2625b0e..48bac13 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/mail/AddReviewerSenderIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/mail/AddReviewerSenderIT.java
@@ -20,7 +20,6 @@
import static com.google.gerrit.extensions.api.changes.NotifyHandling.OWNER_REVIEWERS;
import static com.google.gerrit.extensions.client.GeneralPreferencesInfo.EmailStrategy.CC_ON_OWN_COMMENTS;
-import com.google.common.collect.ImmutableList;
import com.google.gerrit.acceptance.AbstractNotificationTest;
import com.google.gerrit.acceptance.TestAccount;
import com.google.gerrit.common.Nullable;
@@ -31,6 +30,317 @@
import org.junit.Test;
public class AddReviewerSenderIT extends AbstractNotificationTest {
+ private void addReviewerToReviewableChangeInReviewDb(Adder adder) throws Exception {
+ assume().that(notesMigration.readChanges()).isFalse();
+ StagedChange sc = stageReviewableChange();
+ TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
+ addReviewer(adder, sc.changeId, sc.owner, reviewer.email);
+ assertThat(sender)
+ .sent("newchange", sc)
+ .to(reviewer)
+ .cc(sc.reviewer, sc.ccer)
+ .cc(sc.reviewerByEmail, sc.ccerByEmail)
+ .noOneElse();
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeInReviewDbSingly() throws Exception {
+ addReviewerToReviewableChangeInReviewDb(singly());
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeInReviewDbBatch() throws Exception {
+ addReviewerToReviewableChangeInReviewDb(batch());
+ }
+
+ private void addReviewerToReviewableChangeInNoteDb(Adder adder) throws Exception {
+ assume().that(notesMigration.readChanges()).isTrue();
+ StagedChange sc = stageReviewableChange();
+ TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
+ addReviewer(adder, sc.changeId, sc.owner, reviewer.email);
+ // TODO(logan): Should CCs be included?
+ assertThat(sender)
+ .sent("newchange", sc)
+ .to(reviewer)
+ .cc(sc.reviewer)
+ .cc(sc.reviewerByEmail, sc.ccerByEmail)
+ .noOneElse();
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeInNoteDbSingly() throws Exception {
+ addReviewerToReviewableChangeInNoteDb(singly());
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeInNoteDbBatch() throws Exception {
+ addReviewerToReviewableChangeInNoteDb(batch());
+ }
+
+ private void addReviewerToReviewableChangeByOwnerCcingSelfInNoteDb(Adder adder) throws Exception {
+ assume().that(notesMigration.readChanges()).isTrue();
+ StagedChange sc = stageReviewableChange();
+ TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
+ addReviewer(adder, sc.changeId, sc.owner, reviewer.email, CC_ON_OWN_COMMENTS, null);
+ // TODO(logan): Should CCs be included?
+ assertThat(sender)
+ .sent("newchange", sc)
+ .to(reviewer)
+ .cc(sc.owner, sc.reviewer)
+ .cc(sc.reviewerByEmail, sc.ccerByEmail)
+ .noOneElse();
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeByOwnerCcingSelfInNoteDbSingly() throws Exception {
+ addReviewerToReviewableChangeByOwnerCcingSelfInNoteDb(singly());
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeByOwnerCcingSelfInNoteDbBatch() throws Exception {
+ addReviewerToReviewableChangeByOwnerCcingSelfInNoteDb(batch());
+ }
+
+ private void addReviewerToReviewableChangeByOtherInNoteDb(Adder adder) throws Exception {
+ assume().that(notesMigration.readChanges()).isTrue();
+ TestAccount other = accountCreator.create("other", "other@example.com", "other");
+ StagedChange sc = stageReviewableChange();
+ TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
+ addReviewer(adder, sc.changeId, other, reviewer.email);
+ // TODO(logan): Should CCs be included?
+ assertThat(sender)
+ .sent("newchange", sc)
+ .to(reviewer)
+ .cc(sc.owner, sc.reviewer)
+ .cc(sc.reviewerByEmail, sc.ccerByEmail)
+ .noOneElse();
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeByOtherInNoteDbSingly() throws Exception {
+ addReviewerToReviewableChangeByOtherInNoteDb(singly());
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeByOtherInNoteDbBatch() throws Exception {
+ addReviewerToReviewableChangeByOtherInNoteDb(batch());
+ }
+
+ private void addReviewerToReviewableChangeByOtherCcingSelfInNoteDb(Adder adder) throws Exception {
+ assume().that(notesMigration.readChanges()).isTrue();
+ TestAccount other = accountCreator.create("other", "other@example.com", "other");
+ StagedChange sc = stageReviewableChange();
+ TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
+ addReviewer(adder, sc.changeId, other, reviewer.email, CC_ON_OWN_COMMENTS, null);
+ // TODO(logan): Should CCs be included?
+ assertThat(sender)
+ .sent("newchange", sc)
+ .to(reviewer)
+ .cc(sc.owner, sc.reviewer, other)
+ .cc(sc.reviewerByEmail, sc.ccerByEmail)
+ .noOneElse();
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeByOtherCcingSelfInNoteDbSingly() throws Exception {
+ addReviewerToReviewableChangeByOtherCcingSelfInNoteDb(singly());
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeByOtherCcingSelfInNoteDbBatch() throws Exception {
+ addReviewerToReviewableChangeByOtherCcingSelfInNoteDb(batch());
+ }
+
+ private void addReviewerByEmailToReviewableChangeInReviewDb(Adder adder) throws Exception {
+ assume().that(notesMigration.readChanges()).isFalse();
+ String email = "addedbyemail@example.com";
+ StagedChange sc = stageReviewableChange();
+ addReviewer(adder, sc.changeId, sc.owner, email);
+ assertThat(sender).notSent();
+ }
+
+ @Test
+ public void addReviewerByEmailToReviewableChangeInReviewDbSingly() throws Exception {
+ addReviewerByEmailToReviewableChangeInReviewDb(singly());
+ }
+
+ @Test
+ public void addReviewerByEmailToReviewableChangeInReviewDbBatch() throws Exception {
+ addReviewerByEmailToReviewableChangeInReviewDb(batch());
+ }
+
+ private void addReviewerByEmailToReviewableChangeInNoteDb(Adder adder) throws Exception {
+ assume().that(notesMigration.readChanges()).isTrue();
+ String email = "addedbyemail@example.com";
+ StagedChange sc = stageReviewableChange();
+ addReviewer(adder, sc.changeId, sc.owner, email);
+ // TODO(logan): Should CCs be included?
+ assertThat(sender)
+ .sent("newchange", sc)
+ .to(email)
+ .cc(sc.reviewer)
+ .cc(sc.reviewerByEmail, sc.ccerByEmail)
+ .noOneElse();
+ }
+
+ @Test
+ public void addReviewerByEmailToReviewableChangeInNoteDbSingly() throws Exception {
+ addReviewerByEmailToReviewableChangeInNoteDb(singly());
+ }
+
+ @Test
+ public void addReviewerByEmailToReviewableChangeInNoteDbBatch() throws Exception {
+ addReviewerByEmailToReviewableChangeInNoteDb(batch());
+ }
+
+ private void addReviewerToWipChange(Adder adder) throws Exception {
+ StagedChange sc = stageWipChange();
+ TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
+ addReviewer(adder, sc.changeId, sc.owner, reviewer.email);
+ assertThat(sender).notSent();
+ }
+
+ @Test
+ public void addReviewerToWipChangeSingly() throws Exception {
+ addReviewerToWipChange(singly());
+ }
+
+ @Test
+ public void addReviewerToWipChangeBatch() throws Exception {
+ addReviewerToWipChange(batch());
+ }
+
+ private void addReviewerToReviewableWipChange(Adder adder) throws Exception {
+ StagedChange sc = stageReviewableWipChange();
+ TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
+ addReviewer(adder, sc.changeId, sc.owner, reviewer.email);
+ assertThat(sender).notSent();
+ }
+
+ @Test
+ public void addReviewerToReviewableWipChangeSingly() throws Exception {
+ addReviewerToReviewableWipChange(singly());
+ }
+
+ @Test
+ public void addReviewerToReviewableWipChangeBatch() throws Exception {
+ addReviewerToReviewableWipChange(batch());
+ }
+
+ private void addReviewerToWipChangeInNoteDbNotifyAll(Adder adder) throws Exception {
+ assume().that(notesMigration.readChanges()).isTrue();
+ StagedChange sc = stageWipChange();
+ TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
+ addReviewer(adder, sc.changeId, sc.owner, reviewer.email, NotifyHandling.ALL);
+ // TODO(logan): Should CCs be included?
+ assertThat(sender)
+ .sent("newchange", sc)
+ .to(reviewer)
+ .cc(sc.reviewer)
+ .cc(sc.reviewerByEmail, sc.ccerByEmail)
+ .noOneElse();
+ }
+
+ @Test
+ public void addReviewerToWipChangeInNoteDbNotifyAllSingly() throws Exception {
+ addReviewerToWipChangeInNoteDbNotifyAll(singly());
+ }
+
+ @Test
+ public void addReviewerToWipChangeInNoteDbNotifyAllBatch() throws Exception {
+ addReviewerToWipChangeInNoteDbNotifyAll(batch());
+ }
+
+ private void addReviewerToWipChangeInReviewDbNotifyAll(Adder adder) throws Exception {
+ assume().that(notesMigration.readChanges()).isFalse();
+ StagedChange sc = stageWipChange();
+ TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
+ addReviewer(adder, sc.changeId, sc.owner, reviewer.email, NotifyHandling.ALL);
+ assertThat(sender)
+ .sent("newchange", sc)
+ .to(reviewer)
+ .cc(sc.reviewer, sc.ccer)
+ .cc(sc.reviewerByEmail, sc.ccerByEmail)
+ .noOneElse();
+ }
+
+ @Test
+ public void addReviewerToWipChangeInReviewDbNotifyAllSingly() throws Exception {
+ addReviewerToWipChangeInReviewDbNotifyAll(singly());
+ }
+
+ @Test
+ public void addReviewerToWipChangeInReviewDbNotifyAllBatch() throws Exception {
+ addReviewerToWipChangeInReviewDbNotifyAll(batch());
+ }
+
+ private void addReviewerToReviewableChangeInNoteDbNotifyOwnerReviewers(Adder adder)
+ throws Exception {
+ assume().that(notesMigration.readChanges()).isTrue();
+ StagedChange sc = stageReviewableChange();
+ TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
+ addReviewer(adder, sc.changeId, sc.owner, reviewer.email, OWNER_REVIEWERS);
+ // TODO(logan): Should CCs be included?
+ assertThat(sender)
+ .sent("newchange", sc)
+ .to(reviewer)
+ .cc(sc.reviewer)
+ .cc(sc.reviewerByEmail, sc.ccerByEmail)
+ .noOneElse();
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeInNoteDbNotifyOwnerReviewersSingly() throws Exception {
+ addReviewerToReviewableChangeInNoteDbNotifyOwnerReviewers(singly());
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeInNoteDbNotifyOwnerReviewersBatch() throws Exception {
+ addReviewerToReviewableChangeInNoteDbNotifyOwnerReviewers(batch());
+ }
+
+ private void addReviewerToReviewableChangeInNoteDbByOwnerCcingSelfNotifyOwner(Adder adder)
+ throws Exception {
+ assume().that(notesMigration.readChanges()).isTrue();
+ StagedChange sc = stageReviewableChange();
+ TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
+ addReviewer(adder, sc.changeId, sc.owner, reviewer.email, CC_ON_OWN_COMMENTS, OWNER);
+ assertThat(sender).notSent();
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeInNoteDbByOwnerCcingSelfNotifyOwnerSingly()
+ throws Exception {
+ addReviewerToReviewableChangeInNoteDbByOwnerCcingSelfNotifyOwner(singly());
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeInNoteDbByOwnerCcingSelfNotifyOwnerBatch()
+ throws Exception {
+ addReviewerToReviewableChangeInNoteDbByOwnerCcingSelfNotifyOwner(batch());
+ }
+
+ private void addReviewerToReviewableChangeInNoteDbByOwnerCcingSelfNotifyNone(Adder adder)
+ throws Exception {
+ assume().that(notesMigration.readChanges()).isTrue();
+ StagedChange sc = stageReviewableChange();
+ TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
+ addReviewer(adder, sc.changeId, sc.owner, reviewer.email, CC_ON_OWN_COMMENTS, NONE);
+ assertThat(sender).notSent();
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeInNoteDbByOwnerCcingSelfNotifyNoneSingly()
+ throws Exception {
+ addReviewerToReviewableChangeInNoteDbByOwnerCcingSelfNotifyNone(singly());
+ }
+
+ @Test
+ public void addReviewerToReviewableChangeInNoteDbByOwnerCcingSelfNotifyNoneBatch()
+ throws Exception {
+ addReviewerToReviewableChangeInNoteDbByOwnerCcingSelfNotifyNone(batch());
+ }
+
private interface Adder {
void addReviewer(String changeId, String reviewer, @Nullable NotifyHandling notify)
throws Exception;
@@ -58,236 +368,6 @@
};
}
- private interface Tester {
- void test(Adder adder) throws Exception;
- }
-
- private void forAll(Tester tester) throws Exception {
- for (Adder adder : ImmutableList.of(singly(), batch())) {
- tester.test(adder);
- }
- }
-
- @Test
- public void addReviewerToReviewableChangeInReviewDb() throws Exception {
- forAll(
- adder -> {
- assume().that(notesMigration.readChanges()).isFalse();
- StagedChange sc = stageReviewableChange();
- TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
- addReviewer(adder, sc.changeId, sc.owner, reviewer.email);
- assertThat(sender)
- .sent("newchange", sc)
- .to(reviewer)
- .cc(sc.reviewer, sc.ccer)
- .cc(sc.reviewerByEmail, sc.ccerByEmail)
- .noOneElse();
- });
- }
-
- @Test
- public void addReviewerToReviewableChangeInNoteDb() throws Exception {
- assume().that(notesMigration.readChanges()).isTrue();
- forAll(
- adder -> {
- StagedChange sc = stageReviewableChange();
- TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
- addReviewer(adder, sc.changeId, sc.owner, reviewer.email);
- // TODO(logan): Should CCs be included?
- assertThat(sender)
- .sent("newchange", sc)
- .to(reviewer)
- .cc(sc.reviewer)
- .cc(sc.reviewerByEmail, sc.ccerByEmail)
- .noOneElse();
- });
- }
-
- @Test
- public void addReviewerToReviewableChangeByOwnerCcingSelfInNoteDb() throws Exception {
- assume().that(notesMigration.readChanges()).isTrue();
- forAll(
- adder -> {
- StagedChange sc = stageReviewableChange();
- TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
- addReviewer(adder, sc.changeId, sc.owner, reviewer.email, CC_ON_OWN_COMMENTS, null);
- // TODO(logan): Should CCs be included?
- assertThat(sender)
- .sent("newchange", sc)
- .to(reviewer)
- .cc(sc.owner, sc.reviewer)
- .cc(sc.reviewerByEmail, sc.ccerByEmail)
- .noOneElse();
- });
- }
-
- @Test
- public void addReviewerToReviewableChangeByOtherInNoteDb() throws Exception {
- assume().that(notesMigration.readChanges()).isTrue();
- TestAccount other = accountCreator.create("other", "other@example.com", "other");
- forAll(
- adder -> {
- StagedChange sc = stageReviewableChange();
- TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
- addReviewer(adder, sc.changeId, other, reviewer.email);
- // TODO(logan): Should CCs be included?
- assertThat(sender)
- .sent("newchange", sc)
- .to(reviewer)
- .cc(sc.owner, sc.reviewer)
- .cc(sc.reviewerByEmail, sc.ccerByEmail)
- .noOneElse();
- });
- }
-
- @Test
- public void addReviewerToReviewableChangeByOtherCcingSelfInNoteDb() throws Exception {
- assume().that(notesMigration.readChanges()).isTrue();
- TestAccount other = accountCreator.create("other", "other@example.com", "other");
- forAll(
- adder -> {
- StagedChange sc = stageReviewableChange();
- TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
- addReviewer(adder, sc.changeId, other, reviewer.email, CC_ON_OWN_COMMENTS, null);
- // TODO(logan): Should CCs be included?
- assertThat(sender)
- .sent("newchange", sc)
- .to(reviewer)
- .cc(sc.owner, sc.reviewer, other)
- .cc(sc.reviewerByEmail, sc.ccerByEmail)
- .noOneElse();
- });
- }
-
- @Test
- public void addReviewerByEmailToReviewableChangeInReviewDb() throws Exception {
- assume().that(notesMigration.readChanges()).isFalse();
- forAll(
- adder -> {
- String email = "addedbyemail@example.com";
- StagedChange sc = stageReviewableChange();
- addReviewer(adder, sc.changeId, sc.owner, email);
- assertThat(sender).notSent();
- });
- }
-
- @Test
- public void addReviewerByEmailToReviewableChangeInNoteDb() throws Exception {
- assume().that(notesMigration.readChanges()).isTrue();
- forAll(
- adder -> {
- String email = "addedbyemail@example.com";
- StagedChange sc = stageReviewableChange();
- addReviewer(adder, sc.changeId, sc.owner, email);
- // TODO(logan): Should CCs be included?
- assertThat(sender)
- .sent("newchange", sc)
- .to(email)
- .cc(sc.reviewer)
- .cc(sc.reviewerByEmail, sc.ccerByEmail)
- .noOneElse();
- });
- }
-
- @Test
- public void addReviewerToWipChange() throws Exception {
- forAll(
- adder -> {
- StagedChange sc = stageWipChange();
- TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
- addReviewer(adder, sc.changeId, sc.owner, reviewer.email);
- assertThat(sender).notSent();
- });
- }
-
- @Test
- public void addReviewerToReviewableWipChange() throws Exception {
- forAll(
- adder -> {
- StagedChange sc = stageReviewableWipChange();
- TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
- addReviewer(adder, sc.changeId, sc.owner, reviewer.email);
- assertThat(sender).notSent();
- });
- }
-
- @Test
- public void addReviewerToWipChangeInNoteDbNotifyAll() throws Exception {
- forAll(
- adder -> {
- assume().that(notesMigration.readChanges()).isTrue();
- StagedChange sc = stageWipChange();
- TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
- addReviewer(adder, sc.changeId, sc.owner, reviewer.email, NotifyHandling.ALL);
- // TODO(logan): Should CCs be included?
- assertThat(sender)
- .sent("newchange", sc)
- .to(reviewer)
- .cc(sc.reviewer)
- .cc(sc.reviewerByEmail, sc.ccerByEmail)
- .noOneElse();
- });
- }
-
- @Test
- public void addReviewerToWipChangeInReviewDbNotifyAll() throws Exception {
- forAll(
- adder -> {
- assume().that(notesMigration.readChanges()).isFalse();
- StagedChange sc = stageWipChange();
- TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
- addReviewer(adder, sc.changeId, sc.owner, reviewer.email, NotifyHandling.ALL);
- assertThat(sender)
- .sent("newchange", sc)
- .to(reviewer)
- .cc(sc.reviewer, sc.ccer)
- .cc(sc.reviewerByEmail, sc.ccerByEmail)
- .noOneElse();
- });
- }
-
- @Test
- public void addReviewerToReviewableChangeInNoteDbNotifyOwnerReviewers() throws Exception {
- assume().that(notesMigration.readChanges()).isTrue();
- forAll(
- adder -> {
- StagedChange sc = stageReviewableChange();
- TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
- addReviewer(adder, sc.changeId, sc.owner, reviewer.email, OWNER_REVIEWERS);
- // TODO(logan): Should CCs be included?
- assertThat(sender)
- .sent("newchange", sc)
- .to(reviewer)
- .cc(sc.reviewer)
- .cc(sc.reviewerByEmail, sc.ccerByEmail)
- .noOneElse();
- });
- }
-
- @Test
- public void addReviewerToReviewableChangeInNoteDbByOwnerCcingSelfNotifyOwner() throws Exception {
- assume().that(notesMigration.readChanges()).isTrue();
- forAll(
- adder -> {
- StagedChange sc = stageReviewableChange();
- TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
- addReviewer(adder, sc.changeId, sc.owner, reviewer.email, CC_ON_OWN_COMMENTS, OWNER);
- assertThat(sender).notSent();
- });
- }
-
- @Test
- public void addReviewerToReviewableChangeInNoteDbByOwnerCcingSelfNotifyNone() throws Exception {
- assume().that(notesMigration.readChanges()).isTrue();
- forAll(
- adder -> {
- StagedChange sc = stageReviewableChange();
- TestAccount reviewer = accountCreator.create("added", "added@example.com", "added");
- addReviewer(adder, sc.changeId, sc.owner, reviewer.email, CC_ON_OWN_COMMENTS, NONE);
- assertThat(sender).notSent();
- });
- }
-
private void addReviewer(Adder adder, String changeId, TestAccount by, String reviewer)
throws Exception {
addReviewer(adder, changeId, by, reviewer, EmailStrategy.ENABLED, null);