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