Author: btellier
Date: Fri Jun 26 16:17:39 2015
New Revision: 1687794
URL: http://svn.apache.org/r1687794
Log:
MPT-17 Implement create mailbox - contributed by Matthieu Baechlor
Modified:
james/mpt/trunk/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusHostSystem.java
Modified:
james/mpt/trunk/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusHostSystem.java
URL:
http://svn.apache.org/viewvc/james/mpt/trunk/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusHostSystem.java?rev=1687794&r1=1687793&r2=1687794&view=diff
==============================================================================
---
james/mpt/trunk/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusHostSystem.java
(original)
+++
james/mpt/trunk/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusHostSystem.java
Fri Jun 26 16:17:39 2015
@@ -20,11 +20,15 @@ package org.apache.james.mpt.imapmailbox
import java.net.InetSocketAddress;
+import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mpt.api.Session;
import org.apache.james.mpt.api.UserAdder;
import org.apache.james.mpt.host.ExternalHostSystem;
import org.apache.james.mpt.monitor.NullMonitor;
+import org.apache.james.mpt.protocol.ProtocolSession;
import com.google.common.base.Supplier;
+import com.google.common.base.Throwables;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
@@ -33,6 +37,7 @@ import com.spotify.docker.client.message
@Singleton
public class CyrusHostSystem extends ExternalHostSystem implements
Provider<ContainerCreation> {
+ private static final String CREATE_MAILBOX_LOCATION =
"CyrusHostSystem.createMailbox";
private static final String SHABANG = "* OK IMAP4rev1 Server ready";
private final Docker docker;
private Supplier<InetSocketAddress> addressSupplier;
@@ -71,4 +76,26 @@ public class CyrusHostSystem extends Ext
public ContainerCreation get() {
return container;
}
+
+ @Override
+ public void createMailbox(MailboxPath mailboxPath) {
+ ProtocolSession protocolSession = new ProtocolSession();
+ protocolSession.SL(".*", CREATE_MAILBOX_LOCATION);
+ protocolSession.CL(". LOGIN cyrus cyrus");
+ protocolSession.SL("\\. OK .*", CREATE_MAILBOX_LOCATION);
+ protocolSession.CL(String.format("A1 CREATE user.%s.%s",
mailboxPath.getUser(), mailboxPath.getName()));
+ protocolSession.SL("A1 OK .*", CREATE_MAILBOX_LOCATION);
+ protocolSession.CL("A2 LOGOUT");
+ protocolSession.SL("\\* BYE .*", CREATE_MAILBOX_LOCATION);
+ try {
+ Session session = newSession(null);
+ try {
+ protocolSession.runSessions(new Session[]{session});
+ } finally {
+ session.stop();
+ }
+ } catch (Exception e) {
+ Throwables.propagate(e);
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]