You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/03/23 09:27:02 UTC
[8/9] james-project git commit: JAMES-2352 Add a JPA integration test
about quota
JAMES-2352 Add a JPA integration test about quota
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/e35540d1
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/e35540d1
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/e35540d1
Branch: refs/heads/master
Commit: e35540d10d2ced70a8d8c59f2fe25495df0060bf
Parents: 20bc8a7
Author: benwa <bt...@linagora.com>
Authored: Wed Mar 21 09:48:36 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Mar 23 16:25:48 2018 +0700
----------------------------------------------------------------------
.../apache/james/AbstractJamesServerTest.java | 2 +-
server/container/guice/jpa-guice/pom.xml | 5 ++
.../org/apache/james/JPAJamesServerTest.java | 51 +++++++++++++++++++-
.../apache/james/utils/IMAPMessageReader.java | 5 ++
4 files changed, 61 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/e35540d1/server/container/guice/guice-common/src/test/java/org/apache/james/AbstractJamesServerTest.java
----------------------------------------------------------------------
diff --git a/server/container/guice/guice-common/src/test/java/org/apache/james/AbstractJamesServerTest.java b/server/container/guice/guice-common/src/test/java/org/apache/james/AbstractJamesServerTest.java
index 0e21021..b2dd541 100644
--- a/server/container/guice/guice-common/src/test/java/org/apache/james/AbstractJamesServerTest.java
+++ b/server/container/guice/guice-common/src/test/java/org/apache/james/AbstractJamesServerTest.java
@@ -40,7 +40,7 @@ public abstract class AbstractJamesServerTest {
private static final int SMTP_PORT = 1025;
private static final int LMTP_PORT = 1024;
- private GuiceJamesServer server;
+ protected GuiceJamesServer server;
private SocketChannel socketChannel;
@Before
http://git-wip-us.apache.org/repos/asf/james-project/blob/e35540d1/server/container/guice/jpa-guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-guice/pom.xml b/server/container/guice/jpa-guice/pom.xml
index 1df58c1..82fbebf 100644
--- a/server/container/guice/jpa-guice/pom.xml
+++ b/server/container/guice/jpa-guice/pom.xml
@@ -128,6 +128,11 @@
<artifactId>james-server-jpa-common-guice</artifactId>
</dependency>
<dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>james-server-testing</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/e35540d1/server/container/guice/jpa-guice/src/test/java/org/apache/james/JPAJamesServerTest.java
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-guice/src/test/java/org/apache/james/JPAJamesServerTest.java b/server/container/guice/jpa-guice/src/test/java/org/apache/james/JPAJamesServerTest.java
index 00f1507..53318ca 100644
--- a/server/container/guice/jpa-guice/src/test/java/org/apache/james/JPAJamesServerTest.java
+++ b/server/container/guice/jpa-guice/src/test/java/org/apache/james/JPAJamesServerTest.java
@@ -19,14 +19,43 @@
package org.apache.james;
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.apache.james.mailbox.quota.QuotaSize;
+import org.apache.james.mailbox.store.mail.model.SerializableQuotaValue;
+import org.apache.james.modules.QuotaProbesImpl;
import org.apache.james.modules.TestFilesystemModule;
+import org.apache.james.utils.DataProbeImpl;
+import org.apache.james.utils.IMAPMessageReader;
+import org.apache.james.utils.SMTPMessageSender;
import org.junit.Rule;
+import org.junit.Test;
import org.junit.rules.TemporaryFolder;
+import com.google.common.base.Strings;
+import com.jayway.awaitility.Awaitility;
+import com.jayway.awaitility.Duration;
+import com.jayway.awaitility.core.ConditionFactory;
+
public class JPAJamesServerTest extends AbstractJamesServerTest {
+ private static final ConditionFactory AWAIT = Awaitility.await()
+ .atMost(Duration.ONE_MINUTE)
+ .with()
+ .pollInterval(Duration.FIVE_HUNDRED_MILLISECONDS);
+ private static final String DOMAIN = "james.local";
+ private static final String USER = "toto@" + DOMAIN;
+ private static final String PASSWORD = "123456";
+ private static final String LOCALHOST = "127.0.0.1";
+ private static final int SMTP_PORT = 1025;
+ private static final int IMAP_PORT = 1143;
+
@Rule
public TemporaryFolder temporaryFolder = new TemporaryFolder();
+ @Rule
+ public IMAPMessageReader imapMessageReader = new IMAPMessageReader();
+ @Rule
+ public SMTPMessageSender smtpMessageSender = new SMTPMessageSender(DOMAIN);
@Override
protected GuiceJamesServer createJamesServer() {
@@ -39,6 +68,26 @@ public class JPAJamesServerTest extends AbstractJamesServerTest {
@Override
protected void clean() {
}
-
+
+ @Test
+ public void jpaGuiceServerShouldUpdateQuota() throws Exception {
+ DataProbeImpl dataProbe = server.getProbe(DataProbeImpl.class);
+ dataProbe.addDomain(DOMAIN);
+ dataProbe.addUser(USER, PASSWORD);
+ server.getProbe(QuotaProbesImpl.class).setGlobalMaxStorage(new SerializableQuotaValue<>(QuotaSize.size(50 * 1024)));
+
+ // ~ 12 KB email
+ smtpMessageSender.connect(LOCALHOST, SMTP_PORT)
+ .sendMessageWithHeaders(USER, USER, "header: toto\\r\\n\\r\\n" + Strings.repeat("0123456789\n", 1024))
+ .awaitSent(AWAIT);
+
+ assertThat(
+ imapMessageReader.connect(LOCALHOST, IMAP_PORT)
+ .login(USER, PASSWORD)
+ .getQuotaRoot(IMAPMessageReader.INBOX))
+ .isEqualTo("* QUOTAROOT \"INBOX\" #private&toto@james.local\r\n" +
+ "* QUOTA #private&toto@james.local (STORAGE 12 50)\r\n" +
+ "AAAB OK GETQUOTAROOT completed.\r\n");
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/e35540d1/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
----------------------------------------------------------------------
diff --git a/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java b/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
index 258157c..5912cf3 100644
--- a/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
+++ b/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
@@ -176,4 +176,9 @@ public class IMAPMessageReader extends ExternalResource implements Closeable {
public void expunge() throws IOException {
imapClient.expunge();
}
+
+ public String getQuotaRoot(String mailbox) throws IOException {
+ imapClient.sendCommand("GETQUOTAROOT " + mailbox);
+ return imapClient.getReplyString();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org