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