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]

Reply via email to