JAMES-2349 Add integration test for IsOverQuota matcher and domain quota limits
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/26adc7e4 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/26adc7e4 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/26adc7e4 Branch: refs/heads/master Commit: 26adc7e4bc199b91d74c722c707ae354d729558b Parents: ea9286d Author: benwa <[email protected]> Authored: Wed Mar 14 10:51:42 2018 +0700 Committer: benwa <[email protected]> Committed: Thu Mar 15 14:40:16 2018 +0700 ---------------------------------------------------------------------- .../mailets/IsOverQuotaMatcherTest.java | 42 +++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/26adc7e4/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/IsOverQuotaMatcherTest.java ---------------------------------------------------------------------- diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/IsOverQuotaMatcherTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/IsOverQuotaMatcherTest.java index 493fff9..f6e7850 100644 --- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/IsOverQuotaMatcherTest.java +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/IsOverQuotaMatcherTest.java @@ -53,7 +53,8 @@ import com.jayway.restassured.specification.RequestSpecification; public class IsOverQuotaMatcherTest { - private static final String FROM = "fromuser@" + DEFAULT_DOMAIN; + private static final String OTHER_DOMAIN = "other.com"; + private static final String FROM = "fromuser@" + OTHER_DOMAIN; private static final String RECIPIENT = "touser@" + DEFAULT_DOMAIN; private static final String BOUNCE_SENDER = "bounce.sender@" + DEFAULT_DOMAIN; @@ -97,6 +98,7 @@ public class IsOverQuotaMatcherTest { DataProbe dataProbe = jamesServer.getProbe(DataProbeImpl.class); dataProbe.addDomain(DEFAULT_DOMAIN); + dataProbe.addDomain(OTHER_DOMAIN); dataProbe.addUser(FROM, PASSWORD); dataProbe.addUser(RECIPIENT, PASSWORD); dataProbe.addUser(BOUNCE_SENDER, PASSWORD); @@ -127,6 +129,25 @@ public class IsOverQuotaMatcherTest { } @Test + public void aBounceMessageShouldBeSentToTheSenderWhenRecipientAsReachedHisDomainSizeQuota() throws Exception { + webAdminApi.given() + .body(SMALL_SIZE.asLong()) + .put("/quota/domains/" + DEFAULT_DOMAIN + "/size"); + + messageSender.connect(LOCALHOST_IP, SMTP_PORT) + .sendMessage(FROM, RECIPIENT) + .awaitSent(awaitAtMostOneMinute); + + IMAPMessageReader messageReader = imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT) + .login(FROM, PASSWORD) + .select(IMAPMessageReader.INBOX) + .awaitMessage(awaitAtMostOneMinute); + + String bounceMessage = messageReader.readFirstMessage(); + assertThat(bounceMessage).contains(OVER_QUOTA_MESSAGE); + } + + @Test public void aBounceMessageShouldBeSentToTheRecipientWhenRecipientSizeQuotaIsNotExceeded() throws Exception { webAdminApi.given() .body(LARGE_SIZE.asLong()) @@ -162,6 +183,25 @@ public class IsOverQuotaMatcherTest { } @Test + public void aBounceMessageShouldBeSentToTheSenderWhenRecipientAsReachedHisDomainCountQuota() throws Exception { + webAdminApi.given() + .body(SMALL_COUNT.asLong()) + .put("/quota/domains/" + DEFAULT_DOMAIN + "/count"); + + messageSender.connect(LOCALHOST_IP, SMTP_PORT) + .sendMessage(FROM, RECIPIENT) + .awaitSent(awaitAtMostOneMinute); + + IMAPMessageReader messageReader = imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT) + .login(FROM, PASSWORD) + .select(IMAPMessageReader.INBOX) + .awaitMessage(awaitAtMostOneMinute); + + String bounceMessage = messageReader.readFirstMessage(); + assertThat(bounceMessage).contains(OVER_QUOTA_MESSAGE); + } + + @Test public void aBounceMessageShouldBeSentToTheRecipientWhenRecipientCountQuotaIsNotExceeded() throws Exception { webAdminApi.given() .body(LARGE_COUNT.asLong()) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
