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: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to