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/05 13:42:00 UTC

[01/10] james-project git commit: MAILET-117 upgrade SetMimeHeader to new style

Repository: james-project
Updated Branches:
  refs/heads/master 526f8b5e1 -> f97e46346


MAILET-117 upgrade SetMimeHeader 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/de8f9263
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/de8f9263
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/de8f9263

Branch: refs/heads/master
Commit: de8f92630eba268226100afac89ddb6508c04f47
Parents: 9ff634d
Author: Matthieu Baechler <ma...@linagora.com>
Authored: Tue Aug 30 16:04:19 2016 +0200
Committer: Matthieu Baechler <ma...@linagora.com>
Committed: Mon Sep 5 14:17:50 2016 +0200

----------------------------------------------------------------------
 .../james/transport/mailets/SetMimeHeader.java  | 37 +++++---------------
 1 file changed, 9 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/de8f9263/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java
index adeb699..14fab6e 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java
@@ -25,6 +25,9 @@ import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage ;
 
 import org.apache.mailet.base.GenericMailet ;
+
+import com.google.common.base.Strings;
+
 import org.apache.mailet.Mail ;
 
 /**
@@ -41,56 +44,34 @@ import org.apache.mailet.Mail ;
  *
  * @version 1.0.0, 2002-09-11
  */
-public class SetMimeHeader
-       extends GenericMailet {
+public class SetMimeHeader extends GenericMailet {
 
-    /**
-     * The name of the header to be added.
-     */
     private String headerName;
-
-    /**
-     * The value to be set for the header.
-     */
     private String headerValue;
 
-    /**
-     * Initialize the mailet.
-     */
+    @Override
     public void init() throws MessagingException {
         headerName = getInitParameter("name");
         headerValue = getInitParameter("value");
         
-        // Check if needed config values are used
-        if (headerName == null || headerName.equals("") || headerValue == null
-                || headerValue.equals("")) {
+        if (Strings.isNullOrEmpty(headerName) || Strings.isNullOrEmpty(headerValue)) {
             throw new MessagingException("Please configure a name and a value");
         }
     }
 
-    /**
-     * Takes the message and adds a header to it.
-     *
-     * @param mail the mail being processed
-     *
-     */
+    @Override
     public void service(Mail mail) {
         try {
             MimeMessage message = mail.getMessage () ;
 
-            //Set the header name and value (supplied at init time).
             message.setHeader(headerName, headerValue);
             message.saveChanges();
         } catch (javax.mail.MessagingException me) {
-            log (me.getMessage());
+            log(me.getMessage());
         }
     }
 
-    /**
-     * Return a string describing this mailet.
-     *
-     * @return a string describing this mailet
-     */
+    @Override
     public String getMailetInfo() {
         return "SetMimeHeader Mailet" ;
     }


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


[10/10] james-project git commit: Merge remote-tracking branch 'mbaechler/MAILET-101'

Posted by ro...@apache.org.
Merge remote-tracking branch 'mbaechler/MAILET-101'


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

Branch: refs/heads/master
Commit: f97e4634610baaef965c2f3dba7b25546401ba77
Parents: 526f8b5 27fb35d
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Mon Sep 5 15:41:07 2016 +0200
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Mon Sep 5 15:41:07 2016 +0200

----------------------------------------------------------------------
 .../mailet/base/test/FakeMimeMessage.java       |  65 ----------
 .../transport/mailets/AddSubjectPrefix.java     |   5 +
 .../mailets/MailAttributesToMimeHeaders.java    |  65 ++++------
 .../james/transport/mailets/SetMimeHeader.java  |  37 ++----
 .../MailAttributesToMimeHeadersTest.java        | 118 ++++++++---------
 .../transport/mailets/SetMimeHeaderTest.java    | 130 +++++++++++++------
 .../matchers/AbstractSubjectIsTest.java         |  85 ------------
 .../james/transport/matchers/SubjectIsTest.java |  99 ++++++++------
 .../matchers/SubjectStartsWithTest.java         | 102 ++++++++-------
 9 files changed, 300 insertions(+), 406 deletions(-)
----------------------------------------------------------------------



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


[03/10] james-project git commit: MAILET-116 port SubjectStartsWithTest to junit 4 and assertj

Posted by ro...@apache.org.
MAILET-116 port SubjectStartsWithTest to junit 4 and assertj


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

Branch: refs/heads/master
Commit: 63c48c0a2639f1187cb76d36211620a9bd93ac4e
Parents: 4a25501
Author: Matthieu Baechler <ma...@linagora.com>
Authored: Tue Aug 30 15:38:41 2016 +0200
Committer: Matthieu Baechler <ma...@linagora.com>
Committed: Mon Sep 5 14:17:50 2016 +0200

----------------------------------------------------------------------
 .../matchers/SubjectStartsWithTest.java         | 102 +++++++++++--------
 1 file changed, 58 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/63c48c0a/mailet/standard/src/test/java/org/apache/james/transport/matchers/SubjectStartsWithTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/SubjectStartsWithTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/SubjectStartsWithTest.java
index 285804f..673d6d4 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/SubjectStartsWithTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/SubjectStartsWithTest.java
@@ -20,56 +20,70 @@
 
 package org.apache.james.transport.matchers;
 
-import java.io.UnsupportedEncodingException;
-import java.util.Collection;
+import static org.assertj.core.api.Assertions.assertThat;
 
 import javax.mail.MessagingException;
+import javax.mail.internet.AddressException;
 
-import org.apache.james.transport.matchers.SubjectStartsWith;
 import org.apache.mailet.MailAddress;
-import org.apache.mailet.Matcher;
-
-public class SubjectStartsWithTest extends AbstractSubjectIsTest {
-
-    public SubjectStartsWithTest(String arg0)
-            throws UnsupportedEncodingException {
-        super(arg0);
+import org.apache.mailet.base.test.FakeMail;
+import org.apache.mailet.base.test.FakeMailContext;
+import org.apache.mailet.base.test.FakeMatcherConfig;
+import org.apache.mailet.base.test.MailUtil;
+import org.junit.Before;
+import org.junit.Test;
+
+public class SubjectStartsWithTest {
+
+    private SubjectStartsWith matcher;
+    private MailAddress roger;
+
+    @Before
+    public void setup() throws AddressException {
+        matcher = new SubjectStartsWith();
+        roger = new MailAddress("roger@nasa.org");
     }
-
-    // test if the recipients get returned as matched
-    public void testHostIsMatchedAllRecipients() throws MessagingException {
-        String SUBJECT_NAME = "testSubject";
-        setSubject(SUBJECT_NAME);
-
-        setupAll();
-
-        Collection<MailAddress> matchedRecipients = matcher.match(mockedMail);
-
-        assertNotNull(matchedRecipients);
-        assertEquals(matchedRecipients.size(), mockedMail.getRecipients()
-                .size());
+    
+    @Test
+    public void shouldMatchWhenSubjectStartsWithConfiguredValue() throws MessagingException {
+        FakeMail mail = FakeMail.builder()
+                .recipients(roger)
+                .mimeMessage(MailUtil.createMimeMessageWithSubject("testSubject"))
+                .build();
+        
+        FakeMatcherConfig mailetConfig = new FakeMatcherConfig("SubjectIs=test", FakeMailContext.defaultContext());
+        
+        matcher.init(mailetConfig);
+
+        assertThat(matcher.match(mail)).containsExactly(roger);
     }
-
-    // test if no recipient get returned cause it not match
-    public void testHostIsNotMatch() throws MessagingException {
-        setSubject("FOOBAR");
-
-        setupAll();
-
-        Collection<MailAddress> matchedRecipients = matcher.match(mockedMail);
-
-        assertNull(matchedRecipients);
-    }
-
-    protected Matcher createMatcher() {
-        return new SubjectStartsWith();
+    
+    @Test
+    public void shouldNotMatchWhenSubjectDoesntStartWithConfiguredValue() throws MessagingException {
+        FakeMail mail = FakeMail.builder()
+                .recipients(roger)
+                .mimeMessage(MailUtil.createMimeMessageWithSubject("foobar"))
+                .build();
+        
+        FakeMatcherConfig mailetConfig = new FakeMatcherConfig("SubjectIs=test", FakeMailContext.defaultContext());
+        
+        matcher.init(mailetConfig);
+
+        assertThat(matcher.match(mail)).isNull();
     }
-
-    protected String getConfigOption() {
-        return "SubjectIs=";
-    }
-
-    protected String getSubjectName() {
-        return "test";
+    
+
+    @Test
+    public void shouldNotMatchWhenNoSubject() throws MessagingException {
+        FakeMail mail = FakeMail.builder()
+                .recipients(roger)
+                .mimeMessage(MailUtil.createMimeMessageWithSubject(null))
+                .build();
+        
+        FakeMatcherConfig mailetConfig = new FakeMatcherConfig("SubjectIs=test", FakeMailContext.defaultContext());
+        
+        matcher.init(mailetConfig);
+
+        assertThat(matcher.match(mail)).isNull();
     }
 }


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


[09/10] james-project git commit: MAILET-101 refactor MailAttributesToMimeHeaders using guava

Posted by ro...@apache.org.
MAILET-101 refactor MailAttributesToMimeHeaders using guava


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

Branch: refs/heads/master
Commit: b7c2a0b223b67301c4f89bc51af8c0447c9ed021
Parents: 7c6b18a
Author: Matthieu Baechler <ma...@linagora.com>
Authored: Thu Aug 25 15:33:19 2016 +0200
Committer: Matthieu Baechler <ma...@linagora.com>
Committed: Mon Sep 5 14:17:51 2016 +0200

----------------------------------------------------------------------
 .../mailets/MailAttributesToMimeHeaders.java    | 65 ++++++++------------
 1 file changed, 25 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b7c2a0b2/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
index 13a0a03..16ea929 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
@@ -21,14 +21,19 @@
 
 package org.apache.james.transport.mailets;
 
-import java.util.HashMap;
-import java.util.StringTokenizer;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
-import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.Mail;
+import org.apache.mailet.base.GenericMailet;
+
+import com.google.common.base.Splitter;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableMap.Builder;
 
 /**
  * <p>Convert attributes to headers</p>
@@ -44,55 +49,35 @@ import org.apache.mailet.Mail;
  */
 public class MailAttributesToMimeHeaders extends GenericMailet {
 
-    /**
-     * HashMap which holds the attributeName and headerName
-     */
-    private final HashMap<String, String> map = new HashMap<String, String>();
+    private static final String CONFIGURATION_ERROR_MESSAGE = "Invalid config. Please use \"attributeName; headerName\"";
+    private Map<String, String> mappings;
 
-    /*
-     * (non-Javadoc)
-     * @see org.apache.mailet.base.GenericMailet#init()
-     */
+    @Override
     public void init() throws MessagingException {
         String simplemappings = getInitParameter("simplemapping");
+        Builder<String, String> mappingsBuilder = ImmutableMap.builder();
         if (simplemappings != null) {
-
-            StringTokenizer st = new StringTokenizer(simplemappings, ",");
-            while (st.hasMoreTokens()) {
-
-                String parameters[] = st.nextToken().split(";");
-
-                // Check if we have a valid config
-                if (parameters.length > 2 || parameters.length < 2) {
-                    throw new MessagingException(
-                            "Invalid config. Please use \"attributeName; headerName\"");
-                } else {
-                    // Add it to the map
-                    map.put(parameters[0].trim(), parameters[1].trim());
+            for (String mapping : Splitter.on(',').split(simplemappings)) {
+                List<String> pair = Splitter.on(';').trimResults().splitToList(mapping);
+                if (pair.size() != 2) {
+                    throw new MessagingException(CONFIGURATION_ERROR_MESSAGE);
                 }
+                mappingsBuilder.put(pair.get(0), pair.get(1));
             }
         } else {
-            throw new MessagingException(
-                    "Invalid config. Please use \"attributeName; headerName\"");
+            throw new MessagingException(CONFIGURATION_ERROR_MESSAGE);
         }
+        mappings = mappingsBuilder.build();
     }
 
-    /*
-     * (non-Javadoc)
-     * @see org.apache.mailet.base.GenericMailet#service(org.apache.mailet.Mail)
-     */
+    @Override
     public void service(Mail mail) {
-        MimeMessage message;
         try {
-            message = mail.getMessage();
-
-            for (String key : map.keySet()) {
-                String value = (String) mail.getAttribute(key);
-                String headerName = map.get(key);
-
-                // Check if we have all needed values
-                if (headerName != null && value != null) {
-                    // Add the header
+            MimeMessage message = mail.getMessage();
+            for (Entry<String, String> entry : mappings.entrySet()) {
+                String value = (String) mail.getAttribute(entry.getKey());
+                if (value != null) {
+                    String headerName = entry.getValue();
                     message.setHeader(headerName, value);
                 }
             }


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


[05/10] james-project git commit: MAILET-100 To replace a header, AddSubjectPrefix is supposed to remove previous value

Posted by ro...@apache.org.
MAILET-100 To replace a header, AddSubjectPrefix is supposed to remove previous value


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

Branch: refs/heads/master
Commit: 27fb35de27718aeb41f97f6d38b72bca30a89c08
Parents: 1081d8f
Author: Matthieu Baechler <ma...@linagora.com>
Authored: Tue Aug 30 15:34:24 2016 +0200
Committer: Matthieu Baechler <ma...@linagora.com>
Committed: Mon Sep 5 14:17:51 2016 +0200

----------------------------------------------------------------------
 .../org/apache/james/transport/mailets/AddSubjectPrefix.java    | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/27fb35de/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddSubjectPrefix.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddSubjectPrefix.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddSubjectPrefix.java
index d155801..e923aaf 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddSubjectPrefix.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddSubjectPrefix.java
@@ -57,6 +57,11 @@ public class AddSubjectPrefix extends GenericMailet {
     public void service(Mail mail) throws MessagingException {
         MimeMessage m = mail.getMessage();
         String newSubject = prefixSubject(m);
+        replaceSubject(m, newSubject);
+    }
+
+    private void replaceSubject(MimeMessage m, String newSubject) throws MessagingException {
+        m.setSubject(null);
         m.setSubject(newSubject, Charsets.UTF_8.displayName());
     }
 


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


[08/10] james-project git commit: MAILET-101 enhance MailAttributesToMimeHeadersTest coverage a bit

Posted by ro...@apache.org.
MAILET-101 enhance MailAttributesToMimeHeadersTest coverage a bit


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

Branch: refs/heads/master
Commit: 7c6b18abf6963396c0d68e4aaf22d399646fa564
Parents: 51ed533
Author: Matthieu Baechler <ma...@linagora.com>
Authored: Thu Aug 25 15:18:12 2016 +0200
Committer: Matthieu Baechler <ma...@linagora.com>
Committed: Mon Sep 5 14:17:51 2016 +0200

----------------------------------------------------------------------
 .../mailets/MailAttributesToMimeHeadersTest.java     | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/7c6b18ab/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
index 7c1aeed..df62e87 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
@@ -82,4 +82,19 @@ public class MailAttributesToMimeHeadersTest {
         expectedException.expect(MessagingException.class);
         mailet.init(mailetConfig);
     }
+
+    @Test
+    public void shouldThrowAtInitWhenTwoSemicolumnsInConfigurationEntry() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("simplemapping", "first;second;third");
+        expectedException.expect(MessagingException.class);
+        mailet.init(mailetConfig);
+    }
+
+    @Test
+    public void shouldThrowAtInitWhenNoConfigurationEntry() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        expectedException.expect(MessagingException.class);
+        mailet.init(mailetConfig);
+    }
 }


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


[07/10] james-project git commit: MAILET-101 add a test about multivaluated header

Posted by ro...@apache.org.
MAILET-101 add a test about multivaluated header


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

Branch: refs/heads/master
Commit: 1081d8f50c2957f5706b1aa28301aaa00cfbea98
Parents: b7c2a0b
Author: Matthieu Baechler <ma...@linagora.com>
Authored: Mon Aug 29 10:51:08 2016 +0200
Committer: Matthieu Baechler <ma...@linagora.com>
Committed: Mon Sep 5 14:17:51 2016 +0200

----------------------------------------------------------------------
 .../mailet/base/test/FakeMimeMessage.java       | 65 --------------------
 .../MailAttributesToMimeHeadersTest.java        | 18 ++++++
 .../transport/mailets/SetMimeHeaderTest.java    |  2 -
 3 files changed, 18 insertions(+), 67 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/1081d8f5/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMimeMessage.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMimeMessage.java b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMimeMessage.java
index df22a1c..d1842cb 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMimeMessage.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMimeMessage.java
@@ -46,7 +46,6 @@ public class FakeMimeMessage extends MimeMessage {
     private String[] m_contentLanguage;
     private String m_fileName;
     private DataHandler m_dataHandler;
-    private final HashMap<String, String> m_contentHeaders = new HashMap<String, String>();
     private final Flags m_setFlags = new Flags();
     private boolean m_doMatch;
 
@@ -290,34 +289,10 @@ public class FakeMimeMessage extends MimeMessage {
         // trivial implementation
     }
 
-    public String[] getHeader(String name) throws MessagingException {
-        String value = m_contentHeaders.get(name);
-        if (value == null) return null;
-        return new String[]{value};
-    }
-
-    public String getHeader(String name, String delimiter) throws MessagingException {
-        String[] header = getHeader(name);
-        if (header == null || header.length == 0) return null;
-        return header[0];
-    }
-
     public void setHeader(String name, String value) throws MessagingException {
         addHeader(name, value);
     }
 
-    public void addHeader(String name, String value) throws MessagingException {
-        m_contentHeaders.put(name, value);
-    }
-
-    public void removeHeader(String name) throws MessagingException {
-        m_contentHeaders.remove(name);
-    }
-
-    public Enumeration<String> getAllHeaders() throws MessagingException {
-        return Collections.enumeration(m_contentHeaders.values());
-    }
-
     public Enumeration<String> getMatchingHeaders(String[] names) throws MessagingException {
         ArrayList<String> matchingHeaders = new ArrayList<String>();
         for (String name : names) {
@@ -328,19 +303,6 @@ public class FakeMimeMessage extends MimeMessage {
         return Collections.enumeration(matchingHeaders);
     }
 
-    public Enumeration<String> getNonMatchingHeaders(String[] names) throws MessagingException {
-        List<String> existingHeaders = Arrays.asList(names);
-
-        ArrayList<String> nonMatchingHeaders = new ArrayList<String>();
-
-        for (String name : m_contentHeaders.keySet()) {
-            if (existingHeaders.contains(name)) continue;
-            String value = getHeader(name, null);
-            if (value == null) continue;
-            nonMatchingHeaders.add(value);
-        }
-        return Collections.enumeration(nonMatchingHeaders);
-    }
 
     public void addHeaderLine(String headerLine) throws MessagingException {
         int separatorIndex = headerLine.indexOf(":");
@@ -349,19 +311,6 @@ public class FakeMimeMessage extends MimeMessage {
         addHeader(headerLine.substring(0, separatorIndex), headerLine.substring(separatorIndex, headerLine.length()));
     }
 
-    public Enumeration<String> getAllHeaderLines() throws MessagingException {
-        return Collections.enumeration(getHeadersAsStrings(m_contentHeaders));
-    }
-
-    private ArrayList<String> getHeadersAsStrings(HashMap<String, String> contentHeaders) {
-        ArrayList<String> headerLines = new ArrayList<String>();
-        for (String key : contentHeaders.keySet()) {
-            String value = contentHeaders.get(key);
-            headerLines.add(key + ":" + value);
-        }
-        return headerLines;
-    }
-
     public Enumeration<String> getMatchingHeaderLines(String[] names) throws MessagingException {
         ArrayList<String> matchingHeaders = new ArrayList<String>();
         for (String name : names) {
@@ -372,20 +321,6 @@ public class FakeMimeMessage extends MimeMessage {
         return Collections.enumeration(matchingHeaders);
     }
 
-    public Enumeration<String> getNonMatchingHeaderLines(String[] names) throws MessagingException {
-        List<String> existingHeaders = names != null ? Arrays.asList(names) : null;
-
-        ArrayList<String> nonMatchingHeaders = new ArrayList<String>();
-
-        for (String name : m_contentHeaders.keySet()) {
-            if (existingHeaders != null && existingHeaders.contains(name)) continue;
-            String value = getHeader(name, null);
-            if (value == null) continue;
-            nonMatchingHeaders.add(name + ":" + value);
-        }
-        return Collections.enumeration(nonMatchingHeaders);
-    }
-
     public synchronized Flags getFlags() throws MessagingException {
         return new Flags(m_setFlags);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1081d8f5/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
index df62e87..bd5764d 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
@@ -29,6 +29,7 @@ import org.apache.mailet.Mailet;
 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.FakeMimeMessage;
 import org.apache.mailet.base.test.MailUtil;
 import org.junit.Before;
 import org.junit.Rule;
@@ -76,6 +77,23 @@ public class MailAttributesToMimeHeadersTest {
     }
 
     @Test
+    public void shouldAddAttributeIntoHeadersWhenHeaderAlreadyPresent() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("simplemapping", MAIL_ATTRIBUTE_NAME1 + "; " + HEADER_NAME1);
+        mailet.init(mailetConfig);
+        
+        FakeMimeMessage mimeMessage = MailUtil.createMimeMessage();
+        mimeMessage.addHeader(HEADER_NAME1, "first value");
+		FakeMail mockedMail = MailUtil.createMockMail2Recipients(mimeMessage);
+        mockedMail.setAttribute(MAIL_ATTRIBUTE_NAME1, MAIL_ATTRIBUTE_VALUE1);
+        
+        mailet.service(mockedMail);
+
+        assertThat(mockedMail.getMessage().getHeader(HEADER_NAME1)).containsExactly("first value", MAIL_ATTRIBUTE_VALUE1);
+    }
+
+    
+    @Test
     public void shouldThrowAtInitWhenNoSemicolumnInConfigurationEntry() throws MessagingException {
         FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
         mailetConfig.setProperty("simplemapping", "invalidConfigEntry");

http://git-wip-us.apache.org/repos/asf/james-project/blob/1081d8f5/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMimeHeaderTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMimeHeaderTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMimeHeaderTest.java
index d1d9921..ba32971 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMimeHeaderTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMimeHeaderTest.java
@@ -34,7 +34,6 @@ 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.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -65,7 +64,6 @@ public class SetMimeHeaderTest {
         assertThat(mail.getMessage().getHeader("header-name")).containsExactly("test-value");
     }
 
-    @Ignore("need multivaluated headers in FakeMail")
     @Test
     public void shouldAddHeaderWhenAlreadyPresent() throws MessagingException {
         FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());


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


[02/10] james-project git commit: MAILET-117 cover SetMimeHeader with tests

Posted by ro...@apache.org.
MAILET-117 cover SetMimeHeader 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/9ff634d3
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/9ff634d3
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/9ff634d3

Branch: refs/heads/master
Commit: 9ff634d306f264e9fa5a7faeaa1aee1918e08bcb
Parents: 1c89c7c
Author: Matthieu Baechler <ma...@linagora.com>
Authored: Mon Aug 29 17:58:12 2016 +0200
Committer: Matthieu Baechler <ma...@linagora.com>
Committed: Mon Sep 5 14:17:50 2016 +0200

----------------------------------------------------------------------
 .../transport/mailets/SetMimeHeaderTest.java    | 132 +++++++++++++------
 1 file changed, 89 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/9ff634d3/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMimeHeaderTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMimeHeaderTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMimeHeaderTest.java
index 8475334..d1d9921 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMimeHeaderTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMimeHeaderTest.java
@@ -20,72 +20,118 @@
 
 package org.apache.james.transport.mailets;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
-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.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.ExpectedException;
 
 public class SetMimeHeaderTest {
 
+    @Rule public ExpectedException expectedException = ExpectedException.none();
+    
     private Mailet mailet;
 
-    private final String HEADER_NAME = "JUNIT";
-
-    private final String HEADER_VALUE = "test-value";
-
-    private String headerName = "defaultHeaderName";
-
-    private String headerValue = "defaultHeaderValue";
-
-    private void setHeaderName(String headerName) {
-        this.headerName = headerName;
-    }
-
-    private void setHeaderValue(String headerValue) {
-        this.headerValue = headerValue;
-    }
-
     @Before
     public void setUp() throws Exception {
         mailet = new SetMimeHeader();
-        FakeMailetConfig mci = new FakeMailetConfig("Test",
-                FakeMailContext.defaultContext());
-        mci.setProperty("name", HEADER_NAME);
-        mci.setProperty("value", HEADER_VALUE);
-
-        mailet.init(mci);
     }
 
-    // test if the Header was add
     @Test
-    public void testHeaderIsPresent() throws MessagingException {
-        MimeMessage mockedMimeMessage = MailUtil.createMimeMessage(headerName, headerValue);
-        FakeMail mockedMail = MailUtil.createMockMail2Recipients(mockedMimeMessage);
-
-        mailet.service(mockedMail);
-
-        Assert.assertEquals(HEADER_VALUE, mockedMail.getMessage().getHeader(HEADER_NAME)[0]);
-
+    public void shouldAddHeaderToMime() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("name", "header-name");
+        mailetConfig.setProperty("value", "test-value");
+        mailet.init(mailetConfig);
+        
+        MimeMessage mimeMessage = MailUtil.createMimeMessage();
+        Mail mail = MailUtil.createMockMail2Recipients(mimeMessage);
+
+        mailet.service(mail);
+
+        assertThat(mail.getMessage().getHeader("header-name")).containsExactly("test-value");
     }
 
-    // test if the Header was replaced
+    @Ignore("need multivaluated headers in FakeMail")
     @Test
-    public void testHeaderIsReplaced() throws MessagingException {
-        setHeaderName(HEADER_NAME);
-        setHeaderValue(headerValue);
-
-        MimeMessage mockedMimeMessage = MailUtil.createMimeMessage(headerName, headerValue);
-        FakeMail mockedMail = MailUtil.createMockMail2Recipients(mockedMimeMessage);
-
-        mailet.service(mockedMail);
+    public void shouldAddHeaderWhenAlreadyPresent() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("name", "header-name");
+        mailetConfig.setProperty("value", "test-value");
+        mailet.init(mailetConfig);
+        
+        MimeMessage mimeMessage = MailUtil.createMimeMessage();
+        mimeMessage.addHeader("header-name", "first-value");
+        Mail mail = MailUtil.createMockMail2Recipients(mimeMessage);
+
+        mailet.service(mail);
+
+        assertThat(mail.getMessage().getHeader("header-name")).containsOnly("test-value", "first-value");
+    }
 
-        Assert.assertEquals(HEADER_VALUE, mockedMail.getMessage().getHeader(HEADER_NAME)[0]);
+    @Test
+    public void shouldNotThrowOnMessagingException() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("name", "header-name");
+        mailetConfig.setProperty("value", "test-value");
+        mailet.init(mailetConfig);
+        
+        Mail mail = mock(Mail.class);
+        when(mail.getMessage()).thenThrow(new MessagingException());
+        mailet.service(mail);
+    }
+    
+    @Test
+    public void shouldThrowWhenNoConfiguration() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        expectedException.expect(MessagingException.class);
+        mailet.init(mailetConfig);
+    }
+    
+    @Test
+    public void shouldThrowWhenNoValue() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("name", "correct");
+        expectedException.expect(MessagingException.class);
+        mailet.init(mailetConfig);
+    }
+    
+    @Test
+    public void shouldThrowWhenNoHeader() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("value", "correct");
+        expectedException.expect(MessagingException.class);
+        mailet.init(mailetConfig);
+    }
+    
+    @Test
+    public void shouldThrowWhenEmptyValue() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("value", "");
+        mailetConfig.setProperty("name", "correct");
+        expectedException.expect(MessagingException.class);
+        mailet.init(mailetConfig);
+    }
+    
+    @Test
+    public void shouldThrowWhenEmptyHeader() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("name", "");
+        mailetConfig.setProperty("value", "correct");
+        expectedException.expect(MessagingException.class);
+        mailet.init(mailetConfig);
     }
 }


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


[06/10] james-project git commit: MAILET-101 use junit 4 and assertj to rewrite MailAttributesToMimeHeadersTest

Posted by ro...@apache.org.
MAILET-101 use junit 4 and assertj to rewrite MailAttributesToMimeHeadersTest


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

Branch: refs/heads/master
Commit: 51ed5335ec87b1651852c758ed26df491b6218e3
Parents: de8f926
Author: Matthieu Baechler <ma...@linagora.com>
Authored: Thu Aug 25 15:05:41 2016 +0200
Committer: Matthieu Baechler <ma...@linagora.com>
Committed: Mon Sep 5 14:17:51 2016 +0200

----------------------------------------------------------------------
 .../MailAttributesToMimeHeadersTest.java        | 93 +++++++-------------
 1 file changed, 31 insertions(+), 62 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/51ed5335/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
index 5c66f3e..7c1aeed 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
@@ -20,97 +20,66 @@
 
 package org.apache.james.transport.mailets;
 
-import java.io.UnsupportedEncodingException;
+
+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.Mailet;
 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.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
 
-import junit.framework.TestCase;
-
-public class MailAttributesToMimeHeadersTest extends TestCase {
+public class MailAttributesToMimeHeadersTest {
 
+    @Rule public ExpectedException expectedException = ExpectedException.none();
+    
     private Mailet mailet;
 
     private final String HEADER_NAME1 = "JUNIT";
-
     private final String HEADER_NAME2 = "JUNIT2";
 
     private final String MAIL_ATTRIBUTE_VALUE1 = "test1";
-
     private final String MAIL_ATTRIBUTE_VALUE2 = "test2";
 
     private final String MAIL_ATTRIBUTE_NAME1 = "org.apache.james.test";
-
     private final String MAIL_ATTRIBUTE_NAME2 = "org.apache.james.test2";
 
-    private String config1 = MAIL_ATTRIBUTE_NAME1 + "; " + HEADER_NAME1;
-
-    public MailAttributesToMimeHeadersTest(String arg0)
-            throws UnsupportedEncodingException {
-        super(arg0);
-    }
-
-    private void setConfig1(String config1) {
-        this.config1 = config1;
-    }
-
-    private String getConfig1() {
-        return config1;
-    }
-
-    private void setupMailet() throws MessagingException {
+    @Before
+    public void setup() {
         mailet = new MailAttributesToMimeHeaders();
-        FakeMailetConfig mci = new FakeMailetConfig("Test",
-                FakeMailContext.defaultContext());
-        mci.setProperty("simplemapping", getConfig1());
-        String config2 = MAIL_ATTRIBUTE_NAME2 + "; " + HEADER_NAME2;
-        mci.setProperty("simplemapping", config2);
-        mailet.init(mci);
     }
-
-    private FakeMail setupMail(MimeMessage m) throws ParseException {
-        FakeMail mockedMail = MailUtil.createMockMail2Recipients(m);
+    
+
+    @Test
+    public void shouldPutAttributesIntoHeadersWhenMappingDefined() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("simplemapping", MAIL_ATTRIBUTE_NAME1 + "; " + HEADER_NAME1);
+        mailetConfig.setProperty("simplemapping", MAIL_ATTRIBUTE_NAME2 + "; " + HEADER_NAME2);
+        mailetConfig.setProperty("simplemapping", "another.attribute" + "; " + "Another-Header");
+        mailet.init(mailetConfig);
+        
+        FakeMail mockedMail = MailUtil.createMockMail2Recipients(MailUtil.createMimeMessage());
         mockedMail.setAttribute(MAIL_ATTRIBUTE_NAME1, MAIL_ATTRIBUTE_VALUE1);
         mockedMail.setAttribute(MAIL_ATTRIBUTE_NAME2, MAIL_ATTRIBUTE_VALUE2);
-        return mockedMail;
-    }
-
-    // test if the Headers were added
-    public void testHeadersArePresent() throws MessagingException {
-        FakeMail mockedMail = setupMail(MailUtil.createMimeMessage());
-        setupMailet();
+        mockedMail.setAttribute("unmatched.attribute", "value");
 
         mailet.service(mockedMail);
 
-        assertEquals(MAIL_ATTRIBUTE_VALUE1, mockedMail.getMessage().getHeader(
-                HEADER_NAME1)[0]);
-
-        assertEquals(MAIL_ATTRIBUTE_VALUE2, mockedMail.getMessage().getHeader(
-                HEADER_NAME2)[0]);
-
+        assertThat(mockedMail.getMessage().getHeader(HEADER_NAME1)).containsExactly(MAIL_ATTRIBUTE_VALUE1);
+        assertThat(mockedMail.getMessage().getHeader(HEADER_NAME2)).containsExactly(MAIL_ATTRIBUTE_VALUE2);
     }
 
-    // test if exception was thrown
-    public void testInvalidConfig() throws MessagingException {
-        boolean exception = false;
-        FakeMail mockedMail = setupMail(MailUtil.createMimeMessage());
-        setConfig1("test");
-
-        try {
-            setupMailet();
-            mailet.service(mockedMail);
-        } catch (MessagingException e) {
-            exception = true;
-        }
-
-        assertTrue(exception);
-
+    @Test
+    public void shouldThrowAtInitWhenNoSemicolumnInConfigurationEntry() throws MessagingException {
+        FakeMailetConfig mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
+        mailetConfig.setProperty("simplemapping", "invalidConfigEntry");
+        expectedException.expect(MessagingException.class);
+        mailet.init(mailetConfig);
     }
 }


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


[04/10] james-project git commit: MAILET-116 port SubjectIsTest to junit 4 and assertj

Posted by ro...@apache.org.
MAILET-116 port SubjectIsTest to junit 4 and assertj


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

Branch: refs/heads/master
Commit: 1c89c7c31d7597d9b09fcbd37e1cab3f94d849e8
Parents: 63c48c0
Author: Matthieu Baechler <ma...@linagora.com>
Authored: Tue Aug 30 15:40:17 2016 +0200
Committer: Matthieu Baechler <ma...@linagora.com>
Committed: Mon Sep 5 14:17:50 2016 +0200

----------------------------------------------------------------------
 .../matchers/AbstractSubjectIsTest.java         | 85 -----------------
 .../james/transport/matchers/SubjectIsTest.java | 99 +++++++++++---------
 2 files changed, 56 insertions(+), 128 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/1c89c7c3/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractSubjectIsTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractSubjectIsTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractSubjectIsTest.java
deleted file mode 100644
index b46a8b5..0000000
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractSubjectIsTest.java
+++ /dev/null
@@ -1,85 +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.matchers;
-
-import java.io.UnsupportedEncodingException;
-
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-
-import org.apache.mailet.Matcher;
-import org.apache.mailet.base.test.FakeMail;
-import org.apache.mailet.base.test.FakeMailContext;
-import org.apache.mailet.base.test.FakeMatcherConfig;
-import org.apache.mailet.base.test.FakeMimeMessage;
-import org.apache.mailet.base.test.MailUtil;
-
-import junit.framework.TestCase;
-
-public abstract class AbstractSubjectIsTest extends TestCase {
-
-    protected FakeMail mockedMail;
-
-    protected Matcher matcher;
-
-    private String subject = null;
-
-    private FakeMimeMessage mockedMimeMessage;
-
-    public AbstractSubjectIsTest(String arg0)
-            throws UnsupportedEncodingException {
-        super(arg0);
-    }
-
-    protected void setSubject(String subject) {
-        this.subject = subject;
-    }
-
-    protected void setupMockedMail(MimeMessage m) {
-        mockedMail = new FakeMail();
-        mockedMail.setMessage(m);
-
-    }
-
-    protected void setupMockedMimeMessage() throws MessagingException {
-        mockedMimeMessage = MailUtil.createMimeMessage("test", "test");
-        mockedMimeMessage.setSubject(subject);
-    }
-
-    protected void setupMatcher() throws MessagingException {
-        matcher = createMatcher();
-        FakeMatcherConfig mci = new FakeMatcherConfig(getConfigOption()
-                + getSubjectName(), FakeMailContext.defaultContext());
-        matcher.init(mci);
-    }
-
-    protected void setupAll() throws MessagingException {
-        setupMockedMimeMessage();
-        setupMockedMail(mockedMimeMessage);
-        setupMatcher();
-    }
-
-    protected abstract String getConfigOption();
-
-    protected abstract String getSubjectName();
-
-    protected abstract Matcher createMatcher();
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/1c89c7c3/mailet/standard/src/test/java/org/apache/james/transport/matchers/SubjectIsTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/SubjectIsTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/SubjectIsTest.java
index 2fd98c9..9e08582 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/SubjectIsTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/SubjectIsTest.java
@@ -20,56 +20,69 @@
 
 package org.apache.james.transport.matchers;
 
-import java.io.UnsupportedEncodingException;
-import java.util.Collection;
+import static org.assertj.core.api.Assertions.assertThat;
 
 import javax.mail.MessagingException;
+import javax.mail.internet.AddressException;
 
-import org.apache.james.transport.matchers.SubjectIs;
 import org.apache.mailet.MailAddress;
-import org.apache.mailet.Matcher;
-
-public class SubjectIsTest extends AbstractSubjectIsTest {
-
-    private final String SUBJECT_NAME = "testSubject";
-
-    public SubjectIsTest(String arg0) throws UnsupportedEncodingException {
-        super(arg0);
+import org.apache.mailet.base.test.FakeMail;
+import org.apache.mailet.base.test.FakeMailContext;
+import org.apache.mailet.base.test.FakeMatcherConfig;
+import org.apache.mailet.base.test.MailUtil;
+import org.junit.Before;
+import org.junit.Test;
+
+public class SubjectIsTest {
+
+    private SubjectIs matcher;
+    private MailAddress roger;
+
+    @Before
+    public void setup() throws AddressException {
+        matcher = new SubjectIs();
+        roger = new MailAddress("roger@nasa.org");
     }
-
-    // test if the recipients get returned as matched
-    public void testHostIsMatchedAllRecipients() throws MessagingException {
-        setSubject(SUBJECT_NAME);
-
-        setupAll();
-
-        Collection<MailAddress> matchedRecipients = matcher.match(mockedMail);
-
-        assertNotNull(matchedRecipients);
-        assertEquals(matchedRecipients.size(), mockedMail.getRecipients()
-                .size());
+    
+    @Test
+    public void shouldMatchWhenSubjectEqualsConfiguredValue() throws MessagingException {
+        FakeMail mail = FakeMail.builder()
+                .mimeMessage(MailUtil.createMimeMessageWithSubject("test"))
+                .recipients(roger)
+                .build();
+        
+        FakeMatcherConfig mailetConfig = new FakeMatcherConfig("SubjectIs=test", FakeMailContext.defaultContext());
+        
+        matcher.init(mailetConfig);
+
+        assertThat(matcher.match(mail)).containsExactly(roger);
     }
 
-    // test if no recipient get returned cause it not match
-    public void testHostIsNotMatch() throws MessagingException {
-        setSubject("test");
-
-        setupAll();
-
-        Collection<MailAddress> matchedRecipients = matcher.match(mockedMail);
-
-        assertNull(matchedRecipients);
-    }
-
-    protected Matcher createMatcher() {
-        return new SubjectIs();
+    @Test
+    public void shouldNotMatchWhenSubjectDoesntEqualsConfiguredValue() throws MessagingException {
+        FakeMail mail = FakeMail.builder()
+                .mimeMessage(MailUtil.createMimeMessageWithSubject("foobar"))
+                .recipients(roger)
+                .build();
+        
+        FakeMatcherConfig mailetConfig = new FakeMatcherConfig("SubjectIs=foo", FakeMailContext.defaultContext());
+        
+        matcher.init(mailetConfig);
+
+        assertThat(matcher.match(mail)).isNull();
     }
-
-    protected String getConfigOption() {
-        return "SubjectIs=";
-    }
-
-    protected String getSubjectName() {
-        return SUBJECT_NAME;
+    
+    @Test
+    public void shouldNotMatchWhenNoSubject() throws MessagingException {
+        FakeMail mail = FakeMail.builder()
+                .mimeMessage(MailUtil.createMimeMessageWithSubject(null))
+                .recipients(roger)
+                .build();
+        
+        FakeMatcherConfig mailetConfig = new FakeMatcherConfig("SubjectIs=foo", FakeMailContext.defaultContext());
+        
+        matcher.init(mailetConfig);
+
+        assertThat(matcher.match(mail)).isNull();
     }
 }


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