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/09/20 09:24:37 UTC

[1/3] james-project git commit: MAILET-102 upgrade Null mailet and tests to modern standards

Repository: james-project
Updated Branches:
  refs/heads/master 3a8592d67 -> 12eb738de


MAILET-102 upgrade Null mailet and tests to modern standards


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

Branch: refs/heads/master
Commit: 0ef78d6420f4a10f317b1cbd8232458f3094ae86
Parents: 3a8592d
Author: Matthieu Baechler <ma...@linagora.com>
Authored: Thu Aug 25 15:53:29 2016 +0200
Committer: Matthieu Baechler <ma...@linagora.com>
Committed: Tue Sep 20 09:12:09 2016 +0200

----------------------------------------------------------------------
 .../apache/james/transport/mailets/Null.java    | 17 ++-----
 .../james/transport/mailets/NullTest.java       | 49 ++++++--------------
 2 files changed, 17 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/0ef78d64/mailet/standard/src/main/java/org/apache/james/transport/mailets/Null.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/Null.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/Null.java
index 176d2a3..7f25514 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/Null.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/Null.java
@@ -25,26 +25,17 @@ import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.Mail;
 
 /**
- * Simplest Mailet which destroys any incoming messages.
- *
+ * Simplest Mailet which destroys any incoming messages
+ * by setting their state to GHOST
  */
 public class Null extends GenericMailet {
 
-    /**
-     * Set this mail to GHOST state, indicating that no further processing 
-     * should take place.
-     *
-     * @param mail the mail to process
-     */
+    @Override
     public void service(Mail mail) {
         mail.setState(Mail.GHOST);
     }
 
-    /**
-     * Return a string describing this mailet.
-     *
-     * @return a string describing this mailet
-     */
+    @Override
     public String getMailetInfo() {
         return "Null Mailet";
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/0ef78d64/mailet/standard/src/test/java/org/apache/james/transport/mailets/NullTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/NullTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/NullTest.java
index 99c7ced..53fb282 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/NullTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/NullTest.java
@@ -20,54 +20,31 @@
 
 package org.apache.james.transport.mailets;
 
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
+import static org.assertj.core.api.Assertions.assertThat;
 
 import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.ParseException;
 
-import junit.framework.TestCase;
-
-import org.apache.james.transport.mailets.Null;
-import org.apache.mailet.base.test.FakeMail;
-import org.apache.mailet.Mail;
-import org.apache.mailet.MailAddress;
 import org.apache.mailet.Mailet;
+import org.apache.mailet.base.test.FakeMail;
+import org.junit.Before;
+import org.junit.Test;
 
-public class NullTest extends TestCase {
-
-    private MimeMessage mockedMimeMessage;
-
-    private Mail mockedMail;
+public class NullTest {
 
     private Mailet mailet;
 
-    public NullTest(String arg0) throws UnsupportedEncodingException {
-        super(arg0);
-    }
-
-    private void setupMockedMail(MimeMessage m) throws ParseException {
-        mockedMail = new FakeMail();
-        mockedMail.setMessage(m);
-        mockedMail.setRecipients(Arrays.asList(new MailAddress("test@james.apache.org"),
-                new MailAddress("test2@james.apache.org")));
-
-    }
-
-    private void setupMailet() throws MessagingException {
+    @Before
+    public void setup() {
         mailet = new Null();
     }
 
-    // test if the right state was set
-    public void testNullMailet() throws MessagingException {
-        setupMockedMail(mockedMimeMessage);
-        setupMailet();
-
-        mailet.service(mockedMail);
+    @Test
+    public void shouldChangeStateToGhost() throws MessagingException {
+        FakeMail mail = new FakeMail();
+        
+        mailet.service(mail);
 
-        String PROCESSOR = "ghost";
-        assertEquals(PROCESSOR, mockedMail.getState());
+        assertThat(mail.getState()).isEqualTo("ghost");
     }
 
 }


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


[3/3] james-project git commit: MAILET-130 SetMailAttribute upgrade to new style

Posted by ro...@apache.org.
MAILET-130 SetMailAttribute upgrade to new style


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

Branch: refs/heads/master
Commit: 12eb738dea700de6c838a37fc149afaa8e53f0bf
Parents: 9b1dd0b
Author: Matthieu Baechler <ma...@linagora.com>
Authored: Mon Aug 29 17:26:21 2016 +0200
Committer: Matthieu Baechler <ma...@linagora.com>
Committed: Tue Sep 20 09:12:10 2016 +0200

----------------------------------------------------------------------
 .../transport/mailets/SetMailAttribute.java     | 45 ++++++--------------
 1 file changed, 13 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/12eb738d/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMailAttribute.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMailAttribute.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMailAttribute.java
index fd5192d..ea91948 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMailAttribute.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMailAttribute.java
@@ -21,10 +21,8 @@
 
 package org.apache.james.transport.mailets;
 
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
-import java.util.Set;
 
 import javax.mail.MessagingException;
 
@@ -32,6 +30,8 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
 
+import com.google.common.collect.ImmutableMap;
+
 /**
  * <p>This mailet sets attributes on the Mail.</p>
  * 
@@ -43,52 +43,33 @@ import org.apache.mailet.base.GenericMailet;
  * &lt;/mailet&gt;
  * </code></pre>
  *
- * @version CVS $Revision$ $Date$
  * @since 2.2.0
  */
 public class SetMailAttribute extends GenericMailet {
 
-    private final HashMap<String, String> attributesToSet = new HashMap<String, String>(2);
-    
-    private Set<Map.Entry<String, String>> entries;
+    private ImmutableMap<String, String> entries;
     
-    /**
-     * Return a string describing this mailet.
-     *
-     * @return a string describing this mailet
-     */
+    @Override
     public String getMailetInfo() {
         return "Set Mail Attribute Mailet";
     }
 
-    /**
-     * Initialize the mailet
-     *
-     * @throws MailetException if the processor parameter is missing
-     */
-    public void init() throws MailetException
-    {
+    @Override
+    public void init() throws MailetException {
+        ImmutableMap.Builder<String, String> attributes = ImmutableMap.builder();
         Iterator<String> iter = getInitParameterNames();
         while (iter.hasNext()) {
             String name = iter.next();
-            String value = getInitParameter (name);
-            attributesToSet.put (name,value);
+            String value = getInitParameter(name);
+            attributes.put(name, value);
         }
-        entries = attributesToSet.entrySet();
+        entries = attributes.build();
     }
 
-    /**
-     * Sets the configured attributes
-     *
-     * @param mail the mail to process
-     *
-     * @throws MessagingException in all cases
-     */
+    @Override
     public void service(Mail mail) throws MessagingException {
-        if (entries != null) {
-            for (Map.Entry<String, String> entry : entries) {
-                mail.setAttribute(entry.getKey(), entry.getValue());
-            }
+        for (Map.Entry<String, String> entry : entries.entrySet()) {
+            mail.setAttribute(entry.getKey(), entry.getValue());
         }
     }
     


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


[2/3] james-project git commit: MAILET-130 cover SetMailAttribute with tests

Posted by ro...@apache.org.
MAILET-130 cover SetMailAttribute with tests


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

Branch: refs/heads/master
Commit: 9b1dd0bae24d2ec4b660d46bfd14de5d3aeabbbf
Parents: 0ef78d6
Author: Matthieu Baechler <ma...@linagora.com>
Authored: Mon Aug 29 17:20:52 2016 +0200
Committer: Matthieu Baechler <ma...@linagora.com>
Committed: Tue Sep 20 09:12:10 2016 +0200

----------------------------------------------------------------------
 .../transport/mailets/SetMailAttributeTest.java | 79 ++++++++++++++------
 1 file changed, 58 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/9b1dd0ba/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
index ae59925..009d3cd 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
@@ -20,8 +20,7 @@
 
 package org.apache.james.transport.mailets;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
+import static org.assertj.core.api.Assertions.assertThat;
 
 import javax.mail.MessagingException;
 
@@ -31,38 +30,76 @@ import org.apache.mailet.base.test.FakeMailContext;
 import org.apache.mailet.base.test.FakeMailetConfig;
 import org.apache.mailet.base.test.MailUtil;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.ExpectedException;
 
 public class SetMailAttributeTest {
 
+    @Rule public ExpectedException expectedException = ExpectedException.none();
+    
     private Mailet mailet;
 
-    private final String ATTRIBUTE_NAME1 = "org.apache.james.junit1";
-
-    private final String ATTRIBUTE_NAME2 = "org.apache.james.junit2";
-
-    private Mail mockedMail;
-
     @Before
     public void setupMailet() throws MessagingException {
-        mockedMail = MailUtil.createMockMail2Recipients(null);
         mailet = new SetMailAttribute();
-        FakeMailetConfig mci = new FakeMailetConfig("Test",
-                FakeMailContext.defaultContext());
-        mci.setProperty(ATTRIBUTE_NAME1, "true");
-        mci.setProperty(ATTRIBUTE_NAME2, "true");
+    }
+
+    @Test
+    public void shouldAddConfiguredAttributes() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("org.apache.james.junit1", "true");
+        mailetConfig.setProperty("org.apache.james.junit2", "happy");
+
+        mailet.init(mailetConfig);
+
+        Mail mail = MailUtil.createMockMail2Recipients(null);
+        
+        mailet.service(mail);
 
-        mailet.init(mci);
+        assertThat(mail.getAttribute("org.apache.james.junit1")).isEqualTo("true");
+        assertThat(mail.getAttribute("org.apache.james.junit2")).isEqualTo("happy");
     }
+    
+    @Test
+    public void shouldAddNothingWhenNoConfiguredAttribute() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+     
+        mailet.init(mailetConfig);
+
+        Mail mail = MailUtil.createMockMail2Recipients(null);
+        
+        mailet.service(mail);
 
-    // test if the Header was add
+        assertThat(mail.getAttributeNames()).isEmpty();
+    }
+    
     @Test
-    public void testMailAttributeAdded() throws MessagingException {
-        assertNull(mockedMail.getAttribute(ATTRIBUTE_NAME1));
-        assertNull(mockedMail.getAttribute(ATTRIBUTE_NAME2));
-        mailet.service(mockedMail);
+    public void shouldOverwriteAttributeWhenAttributeAlreadyPresent() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("org.apache.james.junit1", "bar");
+        
+        mailet.init(mailetConfig);
+        
+        Mail mail = MailUtil.createMockMail2Recipients(null);
+        mail.setAttribute("org.apache.james.junit1", "foo");
+        
+        mailet.service(mail);
 
-        assertEquals("true", mockedMail.getAttribute(ATTRIBUTE_NAME1));
-        assertEquals("true", mockedMail.getAttribute(ATTRIBUTE_NAME2));
+        assertThat(mail.getAttribute("org.apache.james.junit1")).isEqualTo("bar");
+    }
+    
+    @Test
+    public void shouldThrowWhenNullProperty() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        expectedException.expect(NullPointerException.class);
+        mailetConfig.setProperty(null, "bar");
+    }
+    
+    @Test
+    public void shouldThrowWhenNullValue() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        expectedException.expect(NullPointerException.class);
+        mailetConfig.setProperty("org.apache.james.junit1", null);
     }
 }


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