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 bt...@apache.org on 2016/08/18 10:19:25 UTC
[02/10] james-project git commit: JAMES-1773 Complete HasHeaderTest
JAMES-1773 Complete HasHeaderTest
What was not tested ?
- multi-conditions
- header present multiples times (buggy)
- header with value specified
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1b9a1075
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1b9a1075
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1b9a1075
Branch: refs/heads/master
Commit: 1b9a1075d9baf5aea358eb40858c27118e571c3a
Parents: c94a99f
Author: Benoit Tellier <bt...@linagora.com>
Authored: Tue Aug 9 11:46:14 2016 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Aug 18 17:18:15 2016 +0700
----------------------------------------------------------------------
.../james/transport/matchers/HasHeaderTest.java | 80 ++++++++++++++++++++
1 file changed, 80 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/1b9a1075/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java
index 6b40cec..ca7ed5d 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java
@@ -22,9 +22,13 @@ package org.apache.james.transport.matchers;
import static org.assertj.core.api.Assertions.assertThat;
+import java.util.Properties;
+
import javax.mail.MessagingException;
+import javax.mail.Session;
import javax.mail.internet.MimeMessage;
+import org.apache.mailet.Mail;
import org.apache.mailet.Matcher;
import org.apache.mailet.base.test.FakeMail;
import org.apache.mailet.base.test.FakeMailContext;
@@ -38,6 +42,7 @@ public class HasHeaderTest {
private static final String HEADER_NAME_1 = "JUNIT";
private static final String HEADER_NAME_2 = "defaultHeaderName";
private static final String HEADER_VALUE_1 = "defaultHeaderValue";
+ private static final String HEADER_VALUE_2 = "defaultHeaderValue2";
private FakeMail mockedMail;
private Matcher matcher;
@@ -62,4 +67,79 @@ public class HasHeaderTest {
assertThat(matcher.match(mockedMail)).isNull();
}
+
+ @Test
+ public void matchShouldReturnAddressesWhenGoodHeaderNameAndValue() throws MessagingException {
+ matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "=" + HEADER_VALUE_1, new FakeMailContext()));
+
+ assertThat(matcher.match(mockedMail)).containsAll(mockedMail.getRecipients());
+ }
+
+ @Test
+ public void matchShouldReturnNullWhenWrongValue() throws MessagingException {
+ matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "=" + HEADER_VALUE_2, new FakeMailContext()));
+
+ assertThat(matcher.match(mockedMail)).isNull();
+ }
+
+ @Test
+ public void matchShouldReturnNullWhenWrongHeaderNameWithValueSpecified() throws MessagingException {
+ matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_2 + "=" + HEADER_VALUE_2, new FakeMailContext()));
+
+ assertThat(matcher.match(mockedMail)).isNull();
+ }
+
+ @Test
+ public void matchShouldIgnoreExtraEquals() throws MessagingException {
+ matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "=" + HEADER_VALUE_1 + "=any", new FakeMailContext()));
+
+ assertThat(matcher.match(mockedMail)).containsAll(mockedMail.getRecipients());
+ }
+
+ @Test
+ public void matchShouldNotMatchMailsWithNoHeaderWhenValueSpecified() throws MessagingException {
+ matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "=" + HEADER_VALUE_1, new FakeMailContext()));
+ Mail mail = MailUtil.createMockMail2Recipients(MailUtil.createMimeMessage());
+
+ assertThat(matcher.match(mail)).isNull();
+ }
+
+ @Test
+ public void matchShouldNotMatchMailsWithNoHeaderWhenValueNotSpecified() throws MessagingException {
+ matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1, new FakeMailContext()));
+ Mail mail = MailUtil.createMockMail2Recipients(MailUtil.createMimeMessage());
+
+ assertThat(matcher.match(mail)).isNull();
+ }
+
+ @Test
+ public void matchShouldReturnNullWhenOneConditionIsNotTrue() throws MessagingException {
+ matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "+" + HEADER_NAME_2, new FakeMailContext()));
+
+ assertThat(matcher.match(mockedMail)).isNull();
+ }
+
+ @Test
+ public void matchShouldReturnAddressesWhenAllConditionsMatch() throws MessagingException {
+ matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "+" + HEADER_NAME_2, new FakeMailContext()));
+ MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
+ mimeMessage.addHeader(HEADER_NAME_1, HEADER_VALUE_1);
+ mimeMessage.addHeader(HEADER_NAME_2, HEADER_VALUE_2);
+ mimeMessage.saveChanges();
+ Mail mail = MailUtil.createMockMail2Recipients(mimeMessage);
+
+ assertThat(matcher.match(mail)).containsAll(mockedMail.getRecipients());
+ }
+
+ @Test
+ public void matchShouldFindTheRightHeaderLineWhenUsedWithValue() throws MessagingException {
+ matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "=" + HEADER_VALUE_2, new FakeMailContext()));
+ MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
+ mimeMessage.addHeader(HEADER_NAME_1, HEADER_VALUE_1);
+ mimeMessage.addHeader(HEADER_NAME_1, HEADER_VALUE_2);
+ mimeMessage.saveChanges();
+ Mail mail = MailUtil.createMockMail2Recipients(mimeMessage);
+
+ assertThat(matcher.match(mail)).containsAll(mockedMail.getRecipients());
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org