JAMES-1670 ToRecipientFolder should match our coding conventions

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/55d5fd07
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/55d5fd07
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/55d5fd07

Branch: refs/heads/master
Commit: 55d5fd07e84b8c0f17f700a2d87dcd5f5290139d
Parents: 26983cc
Author: Benoit Tellier <btell...@apache.org>
Authored: Tue Feb 16 13:05:31 2016 +0700
Committer: Benoit Tellier <btell...@linagora.com>
Committed: Tue Mar 1 11:05:32 2016 +0700

----------------------------------------------------------------------
 .../transport/mailets/ToRecipientFolder.java    |  16 +-
 .../mailets/delivery/RecipientFolderTest.java   | 197 -------------------
 .../mailets/delivery/ToRecipientFolderTest.java | 191 ++++++++++++++++++
 3 files changed, 195 insertions(+), 209 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/55d5fd07/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
index 7671b1a..563e4c2 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
@@ -53,14 +53,12 @@ import com.google.common.collect.Iterators;
  */
 public class ToRecipientFolder extends GenericMailet {
 
-    public static final String FOLDER = "folder";
-    public static final String CONSUME = "consume";
+    public static final String FOLDER_PARAMETER = "folder";
+    public static final String CONSUME_PARAMETER = "consume";
 
     private MailboxManager mailboxManager;
     private SieveRepository sieveRepository;
     private UsersRepository usersRepository;
-    private String folder;
-    private boolean consume;
 
     @Inject
     public void setMailboxManager(@Named("mailboxmanager")MailboxManager 
mailboxManager) {
@@ -88,18 +86,13 @@ public class ToRecipientFolder extends GenericMailet {
     public void service(Mail mail) throws MessagingException {
         if (!mail.getState().equals(Mail.GHOST)) {
             sieveMailet.service(mail);
-            if (consume) {
-                mail.setState(Mail.GHOST);
-            }
         }
     }
 
     @Override
     public void init() throws MessagingException {
         super.init();
-        this.folder = getInitParameter(FOLDER, "INBOX");
-        this.consume = getInitParameter(CONSUME, false);
-        sieveMailet = new SieveMailet(usersRepository, mailboxManager, 
sieveRepository, this.folder);
+        sieveMailet = new SieveMailet(usersRepository, mailboxManager, 
sieveRepository, getInitParameter(FOLDER_PARAMETER, "INBOX"));
         sieveMailet.init(new MailetConfig() {
             
             @Override
@@ -112,7 +105,6 @@ public class ToRecipientFolder extends GenericMailet {
                     return getMailetConfig().getInitParameter(name);
                 }
             }
-            
 
             @Override
             public Iterator<String> getInitParameterNames() {
@@ -131,8 +123,8 @@ public class ToRecipientFolder extends GenericMailet {
             }
 
         });
-        // Override the default value of "quiet"
         sieveMailet.setQuiet(getInitParameter("quiet", true));
+        sieveMailet.setConsume(getInitParameter(CONSUME_PARAMETER, false));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/55d5fd07/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/RecipientFolderTest.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/RecipientFolderTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/RecipientFolderTest.java
deleted file mode 100644
index 6adcb7c..0000000
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/RecipientFolderTest.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- * **************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one * or more
- * contributor license agreements. See the NOTICE file * distributed with this
- * work for additional information * regarding copyright ownership. The ASF
- * licenses this file * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance * with the
- * License. You may obtain a copy of the License at * *
- * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable
- * law or agreed to in writing, * software distributed under the License is
- * distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the * specific language
- * governing permissions and limitations * under the License. *
- * **************************************************************
- */
-package org.apache.james.transport.mailets.delivery;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import com.google.common.collect.Lists;
-import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MessageManager;
-import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.sieverepository.api.SieveRepository;
-import org.apache.james.user.api.UsersRepository;
-import org.apache.mailet.Mail;
-import org.apache.mailet.MailAddress;
-import org.apache.mailet.base.test.FakeMail;
-import org.apache.mailet.base.test.FakeMailetConfig;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-import org.slf4j.Logger;
-
-import javax.activation.DataHandler;
-import javax.mail.Flags;
-import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
-import javax.mail.util.ByteArrayDataSource;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.Properties;
-import javax.mail.internet.ParseException;
-import org.apache.james.transport.mailets.ToProcessor;
-import org.apache.james.transport.mailets.ToRecipientFolder;
-import org.apache.mailet.Mailet;
-import org.apache.mailet.base.test.FakeMailContext;
-import org.junit.Assert;
-
-public class RecipientFolderTest {
-
-    private UsersRepository usersRepository;
-    private MailboxManager mailboxManager;
-    private SieveRepository sieveRepository;
-    private ToRecipientFolder recipientFolder;
-    private FakeMailetConfig mailetConfig;
-
-    private String folder = null;
-
-    private String consume = null;
-
-    private void setFolder(String folder) {
-        this.folder = folder;
-    }
-
-    private void setConsume(String consume) {
-        this.consume = consume;
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        sieveRepository = mock(SieveRepository.class);
-        usersRepository = mock(UsersRepository.class);
-        mailboxManager = mock(MailboxManager.class);
-
-        mailetConfig = new FakeMailetConfig("RecipientFolderTest",
-                new FakeMailContext());
-
-        recipientFolder = new ToRecipientFolder();
-        recipientFolder.setMailboxManager(mailboxManager);
-        recipientFolder.setUsersRepository(usersRepository);
-        recipientFolder.setSieveRepository(sieveRepository);
-
-        setFolder("Junk");
-        setConsume("true");
-
-        if (folder != null) {
-            mailetConfig.setProperty("folder", folder);
-        }
-        if (consume != null) {
-            mailetConfig.setProperty("consume", consume);
-        }
-        recipientFolder.init(mailetConfig);
-
-    }
-
-    @Test
-    public void initParameterTesting() throws Exception {
-
-        Mail mail = createMail();
-        recipientFolder.service(mail);
-        Assert.assertEquals("Junk", 
recipientFolder.getInitParameter("folder"));
-    }
-
-    // test if ToRecipientFolder works
-    @Test
-    public void ToRecipientFolderConsumeTest() throws Exception {
-
-        Mail mail = createMail();
-        recipientFolder.service(mail);
-
-        Assert.assertEquals(Boolean.valueOf(consume), 
mail.getState().equals(Mail.GHOST));
-    }
-
-    @Test
-    public void 
mailShouldBeWellReceivedByDefaultToUserWhenvirtualHostingIsTurnedOn() throws 
Exception {
-
-        when(usersRepository.supportVirtualHosting()).thenAnswer(new 
Answer<Boolean>() {
-            @Override
-            public Boolean answer(InvocationOnMock invocationOnMock) throws 
Throwable {
-                return true;
-            }
-        });
-        recipientTest();
-    }
-
-    private void recipientTest() throws Exception {
-
-        MailboxPath junkbox = new MailboxPath("#private", 
"recei...@domain.com", "Junk");
-        final MessageManager messageManager = mock(MessageManager.class);
-        when(mailboxManager.getMailbox(eq(junkbox), 
any(MailboxSession.class))).thenAnswer(new Answer<MessageManager>() {
-            @Override
-            public MessageManager answer(InvocationOnMock invocationOnMock) 
throws Throwable {
-                return messageManager;
-            }
-        });
-        final MailboxSession session = mock(MailboxSession.class);
-        when(session.getPathDelimiter()).thenAnswer(new Answer<Character>() {
-            @Override
-            public Character answer(InvocationOnMock invocationOnMock) throws 
Throwable {
-                return '.';
-            }
-        });
-        when(mailboxManager.createSystemSession(any(String.class), 
any(Logger.class))).thenAnswer(new Answer<MailboxSession>() {
-            @Override
-            public MailboxSession answer(InvocationOnMock invocationOnMock) 
throws Throwable {
-                return session;
-            }
-        });
-
-        Mail mail = createMail();
-
-        recipientFolder.init(mailetConfig);
-        recipientFolder.service(mail);
-
-        verify(messageManager).appendMessage(any(InputStream.class), 
any(Date.class), any(MailboxSession.class), eq(true), any(Flags.class));
-
-    }
-
-    private Mail createMail() throws MessagingException, IOException {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new 
Properties()));
-        message.setSubject("Subject");
-        message.setSender(new InternetAddress("sen...@any.com"));
-        message.setRecipient(MimeMessage.RecipientType.TO, new 
InternetAddress("recei...@domain.com"));
-        MimeMultipart multipart = new MimeMultipart();
-        MimeBodyPart scriptPart = new MimeBodyPart();
-        scriptPart.setDataHandler(
-                new DataHandler(
-                        new ByteArrayDataSource(
-                                "toto",
-                                "application/sieve; charset=UTF-8")
-                ));
-        scriptPart.setDisposition(MimeBodyPart.ATTACHMENT);
-        scriptPart.setHeader("Content-Type", "application/sieve; 
charset=UTF-8");
-        scriptPart.setFileName("file.txt");
-        multipart.addBodyPart(scriptPart);
-        message.setContent(multipart);
-        message.saveChanges();
-        Mail mail = new FakeMail(message);
-        mail.setState(Mail.DEFAULT);
-        mail.setRecipients(Lists.newArrayList(new 
MailAddress("recei...@domain.com")));
-        return mail;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/55d5fd07/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
new file mode 100644
index 0000000..a8cd1f6
--- /dev/null
+++ 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
@@ -0,0 +1,191 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.transport.mailets.delivery;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Date;
+import java.util.Properties;
+
+import javax.activation.DataHandler;
+import javax.mail.Flags;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+import javax.mail.util.ByteArrayDataSource;
+
+import org.apache.james.mailbox.MailboxManager;
+import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MessageManager;
+import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.sieverepository.api.SieveRepository;
+import org.apache.james.transport.mailets.ToRecipientFolder;
+import org.apache.james.user.api.UsersRepository;
+import org.apache.mailet.Mail;
+import org.apache.mailet.MailAddress;
+import org.apache.mailet.base.test.FakeMail;
+import org.apache.mailet.base.test.FakeMailContext;
+import org.apache.mailet.base.test.FakeMailetConfig;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+
+import com.google.common.collect.Lists;
+
+public class ToRecipientFolderTest {
+
+    public static final String USER = "recei...@domain.com";
+    public static final MailboxPath INBOX = new MailboxPath("#private", USER, 
"INBOX");
+    public static final MailboxPath JUNK = new MailboxPath("#private", 
"receiver", "Junk");
+    public static final MailboxPath JUNK_VIRTUAL_HOSTING = new 
MailboxPath("#private", USER, "Junk");
+    private UsersRepository usersRepository;
+    private MailboxManager mailboxManager;
+    private ToRecipientFolder recipientFolder;
+    private FakeMailetConfig mailetConfig;
+
+    @Before
+    public void setUp() throws Exception {
+        usersRepository = mock(UsersRepository.class);
+        mailboxManager = mock(MailboxManager.class);
+
+        mailetConfig = new FakeMailetConfig("RecipientFolderTest", new 
FakeMailContext());
+
+        recipientFolder = new ToRecipientFolder();
+        recipientFolder.setMailboxManager(mailboxManager);
+        recipientFolder.setUsersRepository(usersRepository);
+        recipientFolder.setSieveRepository(mock(SieveRepository.class));
+    }
+
+    @Test
+    public void initParameterTesting() throws Exception {
+        mailetConfig.setProperty(ToRecipientFolder.FOLDER_PARAMETER, "Junk");
+        recipientFolder.init(mailetConfig);
+
+        Assert.assertEquals("Junk", 
recipientFolder.getInitParameter(ToRecipientFolder.FOLDER_PARAMETER));
+    }
+
+    @Test
+    public void consumeOptionShouldGhostTheMail() throws Exception {
+        mailetConfig.setProperty(ToRecipientFolder.CONSUME_PARAMETER, "true");
+        recipientFolder.init(mailetConfig);
+
+        Mail mail = createMail();
+        recipientFolder.service(mail);
+
+        assertThat(mail.getState()).isEqualTo(Mail.GHOST);
+    }
+
+    @Test
+    public void consumeOptionShouldNotGhostTheMailByDefault() throws Exception 
{
+        recipientFolder.init(mailetConfig);
+
+        Mail mail = createMail();
+        recipientFolder.service(mail);
+
+        assertThat(mail.getState()).isEqualTo(Mail.DEFAULT);
+    }
+
+    @Test
+    public void folderParameterShouldIndicateDestinationFolder() throws 
Exception {
+        MessageManager messageManager = mock(MessageManager.class);
+        MailboxSession session = mock(MailboxSession.class);
+
+        when(usersRepository.supportVirtualHosting()).thenReturn(true);
+        when(mailboxManager.getMailbox(eq(JUNK_VIRTUAL_HOSTING), 
any(MailboxSession.class))).thenReturn(messageManager);
+        when(session.getPathDelimiter()).thenReturn('.');
+        when(mailboxManager.createSystemSession(any(String.class), 
any(Logger.class))).thenReturn(session);
+
+        mailetConfig.setProperty(ToRecipientFolder.FOLDER_PARAMETER, "Junk");
+        recipientFolder.init(mailetConfig);
+        recipientFolder.service(createMail());
+
+        verify(messageManager).appendMessage(any(InputStream.class), 
any(Date.class), any(MailboxSession.class), eq(true), any(Flags.class));
+    }
+
+    @Test
+    public void folderParameterShouldBeInboxByDefault() throws Exception {
+        MessageManager messageManager = mock(MessageManager.class);
+        MailboxSession session = mock(MailboxSession.class);
+
+        when(usersRepository.supportVirtualHosting()).thenReturn(true);
+        when(mailboxManager.getMailbox(eq(INBOX), 
any(MailboxSession.class))).thenReturn(messageManager);
+        when(session.getPathDelimiter()).thenReturn('.');
+        when(mailboxManager.createSystemSession(any(String.class), 
any(Logger.class))).thenReturn(session);
+
+        recipientFolder.init(mailetConfig);
+        recipientFolder.service(createMail());
+
+        verify(messageManager).appendMessage(any(InputStream.class), 
any(Date.class), any(MailboxSession.class), eq(true), any(Flags.class));
+    }
+
+    @Test
+    public void folderParameterShouldWorkWhenVirtualHostingIsTurnedOff() 
throws Exception {
+        MessageManager messageManager = mock(MessageManager.class);
+        MailboxSession session = mock(MailboxSession.class);
+
+        when(usersRepository.supportVirtualHosting()).thenReturn(false);
+        when(mailboxManager.getMailbox(eq(JUNK), 
any(MailboxSession.class))).thenReturn(messageManager);
+        when(session.getPathDelimiter()).thenReturn('.');
+        when(mailboxManager.createSystemSession(any(String.class), 
any(Logger.class))).thenReturn(session);
+
+        mailetConfig.setProperty(ToRecipientFolder.FOLDER_PARAMETER, "Junk");
+        recipientFolder.init(mailetConfig);
+        recipientFolder.service(createMail());
+
+        verify(messageManager).appendMessage(any(InputStream.class), 
any(Date.class), any(MailboxSession.class), eq(true), any(Flags.class));
+    }
+
+    private Mail createMail() throws MessagingException, IOException {
+        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new 
Properties()));
+        message.setSubject("Subject");
+        message.setSender(new InternetAddress("sen...@any.com"));
+        message.setRecipient(MimeMessage.RecipientType.TO, new 
InternetAddress(USER));
+        MimeMultipart multipart = new MimeMultipart();
+        MimeBodyPart scriptPart = new MimeBodyPart();
+        scriptPart.setDataHandler(
+                new DataHandler(
+                        new ByteArrayDataSource(
+                                "toto",
+                                "application/sieve; charset=UTF-8")
+                ));
+        scriptPart.setDisposition(MimeBodyPart.ATTACHMENT);
+        scriptPart.setHeader("Content-Type", "application/sieve; 
charset=UTF-8");
+        scriptPart.setFileName("file.txt");
+        multipart.addBodyPart(scriptPart);
+        message.setContent(multipart);
+        message.saveChanges();
+        Mail mail = new FakeMail(message);
+        mail.setState(Mail.DEFAULT);
+        mail.setRecipients(Lists.newArrayList(new MailAddress(USER)));
+        return mail;
+    }
+
+}


---------------------------------------------------------------------
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