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 ro...@apache.org on 2016/08/30 07:59:57 UTC

[1/4] james-project git commit: MAILET-103 Refactor RemoveAllMailAttributes

Repository: james-project
Updated Branches:
  refs/heads/master 709cd707f -> 3f528b84d


MAILET-103 Refactor RemoveAllMailAttributes


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

Branch: refs/heads/master
Commit: afdb0e6340fa5ff5d927bcc641fcb1abf1606ad7
Parents: 93d543c
Author: Antoine Duprat <ad...@linagora.com>
Authored: Thu Aug 25 16:34:20 2016 +0200
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Aug 29 16:16:11 2016 +0200

----------------------------------------------------------------------
 .../mailets/RemoveAllMailAttributes.java        | 24 ++++--------
 .../mailets/RemoveAllMailAttributesTest.java    | 39 +++++++++++---------
 2 files changed, 28 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/afdb0e63/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveAllMailAttributes.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveAllMailAttributes.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveAllMailAttributes.java
index 672bfd5..257d3bd 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveAllMailAttributes.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveAllMailAttributes.java
@@ -21,10 +21,11 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.mailet.base.GenericMailet;
-import org.apache.mailet.Mail;
 import javax.mail.MessagingException;
 
+import org.apache.mailet.Mail;
+import org.apache.mailet.base.GenericMailet;
+
 /**
  * This mailet sets removes all attributes set on the Mail instance
  * 
@@ -37,26 +38,15 @@ import javax.mail.MessagingException;
  * @since 2.2.0
  */
 public class RemoveAllMailAttributes extends GenericMailet {
-    
-    /**
-     * Return a string describing this mailet.
-     *
-     * @return a string describing this mailet
-     */
+
+    @Override
     public String getMailetInfo() {
         return "Remove All Mail Attributes Mailet";
     }
 
-    /**
-     * Removes all attributes on the Mail
-     *
-     * @param mail the mail to process
-     *
-     * @throws MessagingException in all cases
-     */
+    @Override
     public void service(Mail mail) throws MessagingException {
-        mail.removeAllAttributes ();
+        mail.removeAllAttributes();
     }
-    
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/afdb0e63/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveAllMailAttributesTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveAllMailAttributesTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveAllMailAttributesTest.java
index 5847018..a6205e3 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveAllMailAttributesTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveAllMailAttributesTest.java
@@ -20,48 +20,51 @@
 
 package org.apache.james.transport.mailets;
 
+import static org.assertj.core.api.Assertions.assertThat;
+
 import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.ParseException;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.base.test.FakeMailContext;
 import org.apache.mailet.base.test.FakeMailetConfig;
 import org.apache.mailet.base.test.MailUtil;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
 public class RemoveAllMailAttributesTest {
 
-    private Mail mockedMail;
-
+    private Mail mail;
     private Mailet mailet;
 
     @Before
     public void setUp() throws Exception {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
         mailet = new RemoveAllMailAttributes();
-        FakeMailetConfig mci = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
-        mailet.init(mci);
+        mailet.init(mailetConfig);
     }
 
-    private void setupMockedMail(MimeMessage m) throws ParseException {
-        mockedMail = MailUtil.createMockMail2Recipients(m);
-        mockedMail.setAttribute("org.apache.james.test.junit", "true");
+    @Test
+    public void getMailetInfoShouldReturnValue() {
+        assertThat(mailet.getMailetInfo()).isEqualTo("Remove All Mail Attributes Mailet");
     }
 
-    // test if ToProcessor works
     @Test
-    public void testRemoveAllMailAttributes() throws MessagingException {
-        setupMockedMail(null);
-        // check if the mail has a attribute
-        Assert.assertTrue(mockedMail.getAttributeNames().hasNext());
+    public void serviceShouldRemoveAllMailAttributes() throws MessagingException {
+        mail = MailUtil.createMockMail2Recipients(null);
+        mail.setAttribute("org.apache.james.test.junit", "true");
 
-        mailet.service(mockedMail);
+        mailet.service(mail);
 
-        // check if all was removed
-        Assert.assertFalse(mockedMail.getAttributeNames().hasNext());
+        assertThat(mail.getAttributeNames()).isEmpty();
     }
 
+    @Test
+    public void serviceShouldRemoveAllMailAttributesWhenNone() throws MessagingException {
+        mail = MailUtil.createMockMail2Recipients(null);
+
+        mailet.service(mail);
+
+        assertThat(mail.getAttributeNames()).isEmpty();
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[4/4] james-project git commit: Merge remote-tracking branch 'aduprat/MAILET-106'

Posted by ro...@apache.org.
Merge remote-tracking branch 'aduprat/MAILET-106'


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

Branch: refs/heads/master
Commit: 3f528b84dbb896c0fc55ddf3c404f9fd7e6a1920
Parents: 8d052d3 b384e4b
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Tue Aug 30 09:59:07 2016 +0200
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Tue Aug 30 09:59:07 2016 +0200

----------------------------------------------------------------------
 .../transport/mailets/RemoveMimeHeader.java     |  53 ++-----
 .../transport/mailets/RemoveMimeHeaderTest.java | 150 ++++++++++++-------
 2 files changed, 109 insertions(+), 94 deletions(-)
----------------------------------------------------------------------



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[2/4] james-project git commit: MAILET-106 Refactor RemoveMimeHeader

Posted by ro...@apache.org.
MAILET-106 Refactor RemoveMimeHeader


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

Branch: refs/heads/master
Commit: b384e4bdbe0b2445702b4fcc84229334f010def2
Parents: 93d543c
Author: Antoine Duprat <ad...@linagora.com>
Authored: Mon Aug 29 09:17:36 2016 +0200
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Aug 29 16:17:54 2016 +0200

----------------------------------------------------------------------
 .../transport/mailets/RemoveMimeHeader.java     |  53 ++-----
 .../transport/mailets/RemoveMimeHeaderTest.java | 150 ++++++++++++-------
 2 files changed, 109 insertions(+), 94 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b384e4bd/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
index 4b34a2e..43857a6 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
@@ -21,15 +21,17 @@
 
 package org.apache.james.transport.mailets;
 
-import java.util.ArrayList;
-import java.util.StringTokenizer;
+import java.util.List;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
-import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
+import org.apache.mailet.base.GenericMailet;
+
+import com.google.common.base.Splitter;
+import com.google.common.collect.ImmutableList;
 
 /**
  * Remove mime headers
@@ -46,55 +48,32 @@ import org.apache.mailet.MailetException;
  */
 public class RemoveMimeHeader extends GenericMailet {
     
-    /**
-     * Arraylist which holds the headers which should be removed
-     */
-    ArrayList<String> headers = new ArrayList<String>();
+    private List<String> headers;
 
-    /*
-     * (non-Javadoc)
-     * @see org.apache.mailet.base.GenericMailet#init()
-     */
+    @Override
     public void init() throws MailetException {
         String header = getInitParameter("name");
-        if (header != null) {
-            StringTokenizer st = new StringTokenizer(header, ",");
-            while (st.hasMoreTokens()) {
-                headers.add(st.nextToken());
-            }
-        } else {
-            throw new MailetException(
-                    "Invalid config. Please specify atleast one name");
+        if (header == null) {
+            throw new MailetException("Invalid config. Please specify atleast one name");
         }
+        headers = ImmutableList.copyOf(Splitter.on(",").split(header));
+    }
+
+    @Override
+    public String getMailetInfo() {
+        return "RemoveMimeHeader Mailet";
     }
-    
 
-    /*
-     * (non-Javadoc)
-     * @see org.apache.mailet.base.GenericMailet#service(org.apache.mailet.Mail)
-     */
+    @Override
     public void service(Mail mail) {
         try {
             MimeMessage  message = mail.getMessage();
-        
-            // loop through the headers
             for (String header : headers) {
                 message.removeHeader(header);
             }
-            
             message.saveChanges();
-
         } catch (MessagingException e) {
-            // just log the exception
             log("Unable to remove headers: " + e.getMessage());
         }
     }
-    
-    /*
-     * (non-Javadoc)
-     * @see org.apache.mailet.base.GenericMailet#getMailetInfo()
-     */
-    public String getMailetInfo() {
-        return "RemoveMimeHeader Mailet";
-    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b384e4bd/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java
index 33685cf..1b56e85 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java
@@ -20,6 +20,10 @@
 
 package org.apache.james.transport.mailets;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
@@ -29,97 +33,129 @@ import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailContext;
 import org.apache.mailet.base.test.FakeMailetConfig;
 import org.apache.mailet.base.test.MailUtil;
-import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.ExpectedException;
 
 public class RemoveMimeHeaderTest {
 
-    private final static String HEADER1 = "header1";
-
-    private final static String HEADER2 = "header2";
+    private static final String HEADER1 = "header1";
+    private static final String HEADER2 = "header2";
 
-    private GenericMailet setupMockedMailet(String name1, String name2) throws MessagingException {
-        GenericMailet mailet = new RemoveMimeHeader();
-        FakeMailetConfig mci = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
-        if (name1 != null) mci.setProperty("name", name1);
-        if (name2 != null) mci.setProperty("name", name2);
+    @Rule
+    public ExpectedException expectedException = ExpectedException.none();
 
-        mailet.init(mci);
-        return mailet;
-    }
+    private GenericMailet mailet;
 
-    private MimeMessage getMockedMimeMessage() throws MessagingException {
-        MimeMessage mockedMimeMessage = MailUtil.createMimeMessage();
-        mockedMimeMessage.setHeader(HEADER1, "true");
-        mockedMimeMessage.setHeader(HEADER2, "true");
-        mockedMimeMessage.saveChanges();
-        return mockedMimeMessage;
+    @Before
+    public void setup() {
+        mailet = new RemoveMimeHeader();
     }
 
-    private Mail getMockedMail(MimeMessage message) {
-        Mail m = new FakeMail();
-        m.setMessage(message);
-        return m;
+    @Test
+    public void getMailetInfoShouldReturnValue() {
+        assertThat(mailet.getMailetInfo()).isEqualTo("RemoveMimeHeader Mailet");
     }
 
     @Test
-    public void testOneHeaderRemoved() throws MessagingException {
-        GenericMailet mailet = setupMockedMailet(HEADER1, null);
-        Mail mail = getMockedMail(getMockedMimeMessage());
+    public void serviceShouldRemoveHeaderWhenOneMatching() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("name", HEADER1);
+        mailet.init(mailetConfig);
 
-        // Get sure both headers are present
-        Assert.assertNotNull("Header present", mail.getMessage().getHeader(HEADER1));
-        Assert.assertNotNull("Header present", mail.getMessage().getHeader(HEADER2));
+        MimeMessage mimeMessage = MailUtil.createMimeMessage();
+        mimeMessage.setHeader(HEADER1, "true");
+        mimeMessage.setHeader(HEADER2, "true");
+        mimeMessage.saveChanges();
+        Mail mail = createMail(mimeMessage);
 
         mailet.service(mail);
 
-        // The first header should be removed
-        Assert.assertNull("Header removed", mail.getMessage().getHeader(HEADER1));
-        Assert.assertNotNull("Header present", mail.getMessage().getHeader(HEADER2));
+        assertThat(mail.getMessage().getHeader(HEADER1)).isNull();
+        assertThat(mail.getMessage().getHeader(HEADER2)).isNotNull();
     }
 
     @Test
-    public void testTwoHeaderRemoved() throws MessagingException {
-        GenericMailet mailet = setupMockedMailet(HEADER1, HEADER2);
-        Mail mail = getMockedMail(getMockedMimeMessage());
+    public void serviceShouldRemoveHeadersWhenTwoMatching() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("name", HEADER1);
+        mailetConfig.setProperty("name", HEADER2);
+        mailet.init(mailetConfig);
+
+        MimeMessage mimeMessage = MailUtil.createMimeMessage();
+        mimeMessage.setHeader(HEADER1, "true");
+        mimeMessage.setHeader(HEADER2, "true");
+        mimeMessage.saveChanges();
+        Mail mail = createMail(mimeMessage);
 
-        // Get sure both headers are present
-        Assert.assertNotNull("Header present", mail.getMessage().getHeader(HEADER1));
-        Assert.assertNotNull("Header present", mail.getMessage().getHeader(HEADER2));
+        mailet.service(mail);
+
+        assertThat(mail.getMessage().getHeader(HEADER1)).isNull();
+        assertThat(mail.getMessage().getHeader(HEADER2)).isNull();
+    }
+
+    @Test
+    public void serviceShouldNotRemoveHeaderWhenNoneMatching() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("name", "other1");
+        mailetConfig.setProperty("name", "other2");
+        mailet.init(mailetConfig);
+
+        MimeMessage mimeMessage = MailUtil.createMimeMessage();
+        mimeMessage.setHeader(HEADER1, "true");
+        mimeMessage.setHeader(HEADER2, "true");
+        mimeMessage.saveChanges();
+        Mail mail = createMail(mimeMessage);
 
         mailet.service(mail);
 
-        // Both header should be removed
-        Assert.assertNull("Header removed", mail.getMessage().getHeader(HEADER1));
-        Assert.assertNull("Header removed", mail.getMessage().getHeader(HEADER2));
+        assertThat(mail.getMessage().getHeader(HEADER1)).isNotNull();
+        assertThat(mail.getMessage().getHeader(HEADER2)).isNotNull();
     }
 
     @Test
-    public void testNoHeaderRemoved() throws MessagingException {
-        GenericMailet mailet = setupMockedMailet("h1", "h2");
-        Mail mail = getMockedMail(getMockedMimeMessage());
+    public void serviceShouldNotRemoveHeaderWhenEmptyConfig() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("name", "");
+        mailet.init(mailetConfig);
 
-        // Get sure both headers are present
-        Assert.assertNotNull("Header present", mail.getMessage().getHeader(HEADER1));
-        Assert.assertNotNull("Header present", mail.getMessage().getHeader(HEADER2));
+        MimeMessage mimeMessage = MailUtil.createMimeMessage();
+        mimeMessage.setHeader(HEADER1, "true");
+        mimeMessage.setHeader(HEADER2, "true");
+        mimeMessage.saveChanges();
+        Mail mail = createMail(mimeMessage);
 
         mailet.service(mail);
 
-        // Both header should be removed
-        Assert.assertNotNull("Header present", mail.getMessage().getHeader(HEADER1));
-        Assert.assertNotNull("header present", mail.getMessage().getHeader(HEADER2));
+        assertThat(mail.getMessage().getHeader(HEADER1)).isNotNull();
+        assertThat(mail.getMessage().getHeader(HEADER2)).isNotNull();
     }
 
     @Test
-    public void testInvalidConfig() throws MessagingException {
-        boolean exception = false;
-        try {
-            setupMockedMailet(null, null);
-        } catch (MessagingException e) {
-            exception = true;
-        }
-        Assert.assertTrue("Exception thrown", exception);
+    public void initShouldThrowWhenInvalidConfig() throws MessagingException {
+        expectedException.expect(MessagingException.class);
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailet.init(mailetConfig);
     }
 
+    @SuppressWarnings("unchecked")
+    @Test
+    public void serviceShouldNotThrowWhenExceptionOccured() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("name", "");
+        mailet.init(mailetConfig);
+
+        Mail mail = mock(Mail.class);
+        when(mail.getMessage())
+            .thenThrow(MessagingException.class);
 
+        mailet.service(mail);
+    }
+
+    private Mail createMail(MimeMessage message) {
+        Mail mail = new FakeMail();
+        mail.setMessage(message);
+        return mail;
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[3/4] james-project git commit: Merge remote-tracking branch 'aduprat/MAILET-103'

Posted by ro...@apache.org.
Merge remote-tracking branch 'aduprat/MAILET-103'


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

Branch: refs/heads/master
Commit: 8d052d3d4e765f1c219f9fa426d6a0291357f37e
Parents: 709cd70 afdb0e6
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Tue Aug 30 09:58:48 2016 +0200
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Tue Aug 30 09:58:48 2016 +0200

----------------------------------------------------------------------
 .../mailets/RemoveAllMailAttributes.java        | 24 ++++--------
 .../mailets/RemoveAllMailAttributesTest.java    | 39 +++++++++++---------
 2 files changed, 28 insertions(+), 35 deletions(-)
----------------------------------------------------------------------



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org