MAILBOX-333 Configuration should allow passing templates
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/ae9a8e6c Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/ae9a8e6c Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/ae9a8e6c Branch: refs/heads/master Commit: ae9a8e6cf1d4f1089eceeb95d9941bc8bf521bde Parents: 409792c Author: benwa <btell...@linagora.com> Authored: Wed May 9 09:51:58 2018 +0700 Committer: benwa <btell...@linagora.com> Committed: Thu May 10 09:24:27 2018 +0700 ---------------------------------------------------------------------- .../QuotaMailingListenerConfiguration.java | 89 ++++++++++++++++++-- .../QuotaThresholdConfigurationChangesTest.java | 83 +++++++++--------- .../QuotaThresholdMailingIntegrationTest.java | 12 ++- .../quota/model/QuotaThresholdFixture.java | 8 +- 4 files changed, 134 insertions(+), 58 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/ae9a8e6c/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/QuotaMailingListenerConfiguration.java ---------------------------------------------------------------------- diff --git a/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/QuotaMailingListenerConfiguration.java b/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/QuotaMailingListenerConfiguration.java index 25d504c..5551b20 100644 --- a/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/QuotaMailingListenerConfiguration.java +++ b/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/QuotaMailingListenerConfiguration.java @@ -20,24 +20,89 @@ package org.apache.james.mailbox.quota.mailing; import java.time.Duration; +import java.util.Collection; import java.util.Objects; +import java.util.Optional; +import org.apache.james.filesystem.api.FileSystem; +import org.apache.james.mailbox.quota.model.QuotaThreshold; import org.apache.james.mailbox.quota.model.QuotaThresholds; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableList; public class QuotaMailingListenerConfiguration { - public static QuotaMailingListenerConfiguration DEFAULT = new QuotaMailingListenerConfiguration( - new QuotaThresholds(ImmutableList.of()), - Duration.ofDays(1)); + + public static class Builder { + private ImmutableList.Builder<QuotaThreshold> thresholds; + private Optional<Duration> gradePeriod; + private Optional<String> bodyTemplate; + private Optional<String> subjectTemplate; + + private Builder() { + thresholds = ImmutableList.builder(); + gradePeriod = Optional.empty(); + bodyTemplate = Optional.empty(); + subjectTemplate = Optional.empty(); + } + + public Builder addThreshold(QuotaThreshold quotaThreshold) { + thresholds.add(quotaThreshold); + return this; + } + + public Builder addThresholds(QuotaThreshold... quotaThresholds) { + thresholds.add(quotaThresholds); + return this; + } + + public Builder addThresholds(Collection<QuotaThreshold> quotaThresholds) { + thresholds.addAll(quotaThresholds); + return this; + } + + public Builder withGracePeriod(Duration duration) { + this.gradePeriod = Optional.of(duration); + return this; + } + + public Builder withBodyTemplate(String bodyTemplate) { + this.bodyTemplate = Optional.of(bodyTemplate); + return this; + } + + public Builder withSubjectTemplate(String subjectTemplate) { + this.subjectTemplate = Optional.of(subjectTemplate); + return this; + } + + public QuotaMailingListenerConfiguration build() { + return new QuotaMailingListenerConfiguration( + new QuotaThresholds(thresholds.build()), + gradePeriod.orElse(DEFAULT_GRACE_PERIOD), + bodyTemplate.orElse(DEFAULT_BODY_TEMPLATE), + subjectTemplate.orElse(DEFAULT_SUBJECT_TEMPLATE)); + } + } + + public static final String DEFAULT_BODY_TEMPLATE = FileSystem.CLASSPATH_PROTOCOL + "//templates/QuotaThresholdMailBody.mustache"; + public static final String DEFAULT_SUBJECT_TEMPLATE = FileSystem.CLASSPATH_PROTOCOL + "//templates/QuotaThresholdMailSubject.mustache"; + public static final Duration DEFAULT_GRACE_PERIOD = Duration.ofDays(1); + + public static Builder builder() { + return new Builder(); + } private final QuotaThresholds thresholds; private final Duration gracePeriod; + private final String bodyTemplate; + private final String subjectTemplate; - public QuotaMailingListenerConfiguration(QuotaThresholds thresholds, Duration gracePeriod) { + private QuotaMailingListenerConfiguration(QuotaThresholds thresholds, Duration gracePeriod, String bodyTemplate, String subjectTemplate) { this.thresholds = thresholds; this.gracePeriod = gracePeriod; + this.bodyTemplate = bodyTemplate; + this.subjectTemplate = subjectTemplate; } public QuotaThresholds getThresholds() { @@ -48,20 +113,30 @@ public class QuotaMailingListenerConfiguration { return gracePeriod; } + public String getBodyTemplate() { + return bodyTemplate; + } + + public String getSubjectTemplate() { + return subjectTemplate; + } + @Override public final boolean equals(Object o) { if (o instanceof QuotaMailingListenerConfiguration) { QuotaMailingListenerConfiguration that = (QuotaMailingListenerConfiguration) o; return Objects.equals(this.thresholds, that.thresholds) - && Objects.equals(this.gracePeriod, that.gracePeriod); + && Objects.equals(this.gracePeriod, that.gracePeriod) + && Objects.equals(this.bodyTemplate, that.bodyTemplate) + && Objects.equals(this.subjectTemplate, that.subjectTemplate); } return false; } @Override public final int hashCode() { - return Objects.hash(thresholds, gracePeriod); + return Objects.hash(thresholds, gracePeriod, bodyTemplate, subjectTemplate); } @Override @@ -69,6 +144,8 @@ public class QuotaMailingListenerConfiguration { return MoreObjects.toStringHelper(this) .add("thresholds", thresholds) .add("gracePeriod", gracePeriod) + .add("bodyTemplate", bodyTemplate) + .add("subjectTemplate", subjectTemplate) .toString(); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/ae9a8e6c/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdConfigurationChangesTest.java ---------------------------------------------------------------------- diff --git a/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdConfigurationChangesTest.java b/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdConfigurationChangesTest.java index 135b84c..fe57929 100644 --- a/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdConfigurationChangesTest.java +++ b/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdConfigurationChangesTest.java @@ -33,24 +33,33 @@ import org.apache.james.mailbox.MailboxListener.QuotaUsageUpdatedEvent; import org.apache.james.mailbox.quota.mailing.QuotaMailingListenerConfiguration; import org.apache.james.mailbox.quota.model.QuotaThresholdFixture.Quotas.Counts; import org.apache.james.mailbox.quota.model.QuotaThresholdFixture.Quotas.Sizes; -import org.apache.james.mailbox.quota.model.QuotaThresholds; import org.apache.mailet.base.test.FakeMailContext; import org.junit.jupiter.api.Test; -import com.google.common.collect.ImmutableList; - public interface QuotaThresholdConfigurationChangesTest { + QuotaMailingListenerConfiguration CONFIGURATION_50 = QuotaMailingListenerConfiguration.builder() + .addThreshold(_50) + .gracePeriod(GRACE_PERIOD) + .build(); + QuotaMailingListenerConfiguration CONFIGURATION_75 = QuotaMailingListenerConfiguration.builder() + .addThreshold(_75) + .gracePeriod(GRACE_PERIOD) + .build(); + QuotaMailingListenerConfiguration CONFIGURATION_50_75 = QuotaMailingListenerConfiguration.builder() + .addThresholds(_50, _75) + .gracePeriod(GRACE_PERIOD) + .build(); + @Test default void shouldNotSendMailWhenNoNewExceededThresholdAfterThresholdIncrease(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); - QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50)), GRACE_PERIOD)); + QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_50); + testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._55_PERCENT, NOW)); - testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_75)), GRACE_PERIOD)); + testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_75); mailetContext.resetSentMails(); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._55_PERCENT, NOW)); @@ -61,13 +70,11 @@ public interface QuotaThresholdConfigurationChangesTest { @Test default void shouldNotSendMailAfterThresholdDecreaseWhenAboveAll(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); - QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_75)), GRACE_PERIOD)); + QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_75); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._92_PERCENT, NOW)); - testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50)), GRACE_PERIOD)); + testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_50); mailetContext.resetSentMails(); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._92_PERCENT, NOW)); @@ -78,13 +85,11 @@ public interface QuotaThresholdConfigurationChangesTest { @Test default void shouldSendMailWhenNewExceededThresholdAfterThresholdIncrease(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); - QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50)), GRACE_PERIOD)); + QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_50); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._92_PERCENT, NOW)); - testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_75)), GRACE_PERIOD)); + testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_75); mailetContext.resetSentMails(); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._92_PERCENT, NOW)); @@ -95,13 +100,11 @@ public interface QuotaThresholdConfigurationChangesTest { @Test default void shouldNotSendMailAfterThresholdIncreaseWhenBelowAll(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); - QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50)), GRACE_PERIOD)); + QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_50); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._30_PERCENT, NOW)); - testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_75)), GRACE_PERIOD)); + testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_75); mailetContext.resetSentMails(); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._30_PERCENT, NOW)); @@ -112,13 +115,11 @@ public interface QuotaThresholdConfigurationChangesTest { @Test default void shouldNotSendMailAfterThresholdDecreaseWhenBelowAll(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); - QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_75)), GRACE_PERIOD)); + QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_75); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._30_PERCENT, NOW)); - testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50)), GRACE_PERIOD)); + testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_50); mailetContext.resetSentMails(); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._30_PERCENT, NOW)); @@ -129,13 +130,11 @@ public interface QuotaThresholdConfigurationChangesTest { @Test default void shouldSendMailWhenNewExceededThresholdAfterThresholdDecrease(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); - QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_75)), GRACE_PERIOD)); + QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_75); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._60_PERCENT, NOW)); - testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50)), GRACE_PERIOD)); + testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_50); mailetContext.resetSentMails(); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._60_PERCENT, NOW)); @@ -146,13 +145,12 @@ public interface QuotaThresholdConfigurationChangesTest { @Test default void shouldSendEmailWhenAddingANewHighestExceededThreshold(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); - QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50)), GRACE_PERIOD)); + QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_50); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._92_PERCENT, NOW)); testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50, _75)), GRACE_PERIOD)); + CONFIGURATION_50_75); mailetContext.resetSentMails(); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._92_PERCENT, NOW)); @@ -163,13 +161,12 @@ public interface QuotaThresholdConfigurationChangesTest { @Test default void shouldNotSendEmailWhenAddingAHighestNonExceededThreshold(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); - QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50)), GRACE_PERIOD)); + QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_50); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._60_PERCENT, NOW)); testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50, _75)), GRACE_PERIOD)); + CONFIGURATION_50_75); mailetContext.resetSentMails(); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._60_PERCENT, NOW)); @@ -180,13 +177,12 @@ public interface QuotaThresholdConfigurationChangesTest { @Test default void shouldNotSendEmailWhenAddingANonHighestExceededThreshold(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); - QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_75)), GRACE_PERIOD)); + QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_75); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._92_PERCENT, NOW)); testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50, _75)), GRACE_PERIOD)); + CONFIGURATION_50_75); mailetContext.resetSentMails(); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._92_PERCENT, NOW)); @@ -198,12 +194,11 @@ public interface QuotaThresholdConfigurationChangesTest { default void shouldNotSendEmailWhenRemovingANonHighestExceededThreshold(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50, _75)), GRACE_PERIOD)); + CONFIGURATION_50_75); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._92_PERCENT, NOW)); - testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_75)), GRACE_PERIOD)); + testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_75); mailetContext.resetSentMails(); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._92_PERCENT, NOW)); @@ -215,12 +210,11 @@ public interface QuotaThresholdConfigurationChangesTest { default void shouldNotSendEmailWhenRemovingHighestExceededThreshold(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50, _75)), GRACE_PERIOD)); + CONFIGURATION_50_75); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._92_PERCENT, NOW)); - testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50)), GRACE_PERIOD)); + testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_50); mailetContext.resetSentMails(); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._92_PERCENT, NOW)); @@ -232,12 +226,11 @@ public interface QuotaThresholdConfigurationChangesTest { default void shouldNotSendEmailWhenRemovingHighestNonExceededThreshold(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50, _75)), GRACE_PERIOD)); + CONFIGURATION_50_75); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._60_PERCENT, NOW)); - testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(ImmutableList.of(_50)), GRACE_PERIOD)); + testee = new QuotaThresholdListenersTestSystem(mailetContext, store, CONFIGURATION_50); mailetContext.resetSentMails(); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._60_PERCENT, NOW)); http://git-wip-us.apache.org/repos/asf/james-project/blob/ae9a8e6c/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdMailingIntegrationTest.java ---------------------------------------------------------------------- diff --git a/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdMailingIntegrationTest.java b/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdMailingIntegrationTest.java index 54854cc..86e947e 100644 --- a/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdMailingIntegrationTest.java +++ b/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdMailingIntegrationTest.java @@ -42,7 +42,6 @@ import org.apache.james.mailbox.MailboxListener.QuotaUsageUpdatedEvent; import org.apache.james.mailbox.quota.mailing.QuotaMailingListenerConfiguration; import org.apache.james.mailbox.quota.model.QuotaThresholdFixture.Quotas.Counts; import org.apache.james.mailbox.quota.model.QuotaThresholdFixture.Quotas.Sizes; -import org.apache.james.mailbox.quota.model.QuotaThresholds; import org.apache.james.util.concurrency.ConcurrentTestRunner; import org.apache.mailet.base.test.FakeMailContext; import org.junit.jupiter.api.Test; @@ -191,7 +190,10 @@ public interface QuotaThresholdMailingIntegrationTest { default void shouldSendOneNoticePerThreshold(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, - new QuotaMailingListenerConfiguration(new QuotaThresholds(_50, _80), GRACE_PERIOD)); + QuotaMailingListenerConfiguration.builder() + .addThresholds(_50, _80) + .withGracePeriod(GRACE_PERIOD) + .build()); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._52_PERCENT, Sizes._30_PERCENT, NOW)); testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._85_PERCENT, Sizes._42_PERCENT, NOW)); @@ -203,7 +205,11 @@ public interface QuotaThresholdMailingIntegrationTest { @Test default void shouldSendOneMailUponConcurrentEvents(EventStore store) throws Exception { FakeMailContext mailetContext = mailetContext(); - QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, new QuotaMailingListenerConfiguration(new QuotaThresholds(_50, _80), GRACE_PERIOD)); + QuotaThresholdListenersTestSystem testee = new QuotaThresholdListenersTestSystem(mailetContext, store, + QuotaMailingListenerConfiguration.builder() + .addThresholds(_50, _80) + .withGracePeriod(GRACE_PERIOD) + .build()); new ConcurrentTestRunner(10, 1, (threadNb, step) -> testee.event(new QuotaUsageUpdatedEvent(BOB_SESSION, QUOTAROOT, Counts._40_PERCENT, Sizes._55_PERCENT, NOW))) http://git-wip-us.apache.org/repos/asf/james-project/blob/ae9a8e6c/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/model/QuotaThresholdFixture.java ---------------------------------------------------------------------- diff --git a/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/model/QuotaThresholdFixture.java b/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/model/QuotaThresholdFixture.java index 1770420..7445fb7 100644 --- a/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/model/QuotaThresholdFixture.java +++ b/mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/model/QuotaThresholdFixture.java @@ -32,8 +32,6 @@ import org.apache.james.mailbox.quota.mailing.QuotaMailingListenerConfiguration; import org.apache.mailet.base.MailAddressFixture; import org.apache.mailet.base.test.FakeMailContext; -import com.google.common.collect.ImmutableList; - public interface QuotaThresholdFixture { QuotaThreshold _50 = new QuotaThreshold(0.50); QuotaThreshold _75 = new QuotaThreshold(0.75); @@ -124,8 +122,10 @@ public interface QuotaThresholdFixture { interface TestConstants { Duration GRACE_PERIOD = Duration.ofDays(1); - QuotaThresholds SINGLE_THRESHOLD = new QuotaThresholds(ImmutableList.of(_50)); - QuotaMailingListenerConfiguration DEFAULT_CONFIGURATION = new QuotaMailingListenerConfiguration(SINGLE_THRESHOLD, GRACE_PERIOD); + QuotaMailingListenerConfiguration DEFAULT_CONFIGURATION = QuotaMailingListenerConfiguration.builder() + .addThresholds(_50) + .withGracePeriod(GRACE_PERIOD) + .build(); String BOB = "bob@domain"; MockMailboxSession BOB_SESSION = new MockMailboxSession(BOB); Instant NOW = Instant.now(); --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org