You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ro...@apache.org on 2016/08/29 13:38:04 UTC

[1/6] james-project git commit: MAILET-99 Introduce builder for FakeMailContext

Repository: james-project
Updated Branches:
  refs/heads/master 6c905bcf7 -> 93d543c82


MAILET-99 Introduce builder for FakeMailContext


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

Branch: refs/heads/master
Commit: a24824e7fbc0462406d398a1b56f4c0898bd8a33
Parents: 3776137
Author: Antoine Duprat <ad...@linagora.com>
Authored: Thu Aug 25 14:45:34 2016 +0200
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Aug 29 14:54:25 2016 +0200

----------------------------------------------------------------------
 .../mailet/base/test/FakeMailContext.java       |  25 +++-
 .../mailet/base/test/FakeMailetConfig.java      |   2 +-
 .../james/transport/mailets/AddFooterTest.java  |   5 +-
 .../transport/mailets/AddSubjectPrefixTest.java |   2 +-
 .../MailAttributesToMimeHeadersTest.java        |  17 ++-
 .../james/transport/mailets/OnlyTextTest.java   |  19 ++-
 .../mailets/RemoveAllMailAttributesTest.java    |  11 +-
 .../mailets/RemoveMailAttributeTest.java        |   9 +-
 .../transport/mailets/RemoveMimeHeaderTest.java |   9 +-
 .../transport/mailets/ReplaceContentTest.java   |  26 ++--
 .../transport/mailets/SetMailAttributeTest.java |  12 +-
 .../transport/mailets/SetMimeHeaderTest.java    |   9 +-
 .../transport/mailets/StripAttachmentTest.java  |  10 +-
 .../transport/mailets/ToProcessorTest.java      |  14 +--
 .../matchers/AbstractHasMailAttributeTest.java  |  12 +-
 .../matchers/AbstractRecipientIsTest.java       |  11 +-
 .../matchers/AbstractSenderIsTest.java          |  10 +-
 .../matchers/AbstractSubjectIsTest.java         |  16 +--
 .../james/transport/matchers/AllTest.java       |   2 +-
 .../transport/matchers/FetchedFromTest.java     |   2 +-
 .../james/transport/matchers/HasHeaderTest.java |  22 ++--
 .../james/transport/matchers/HostIsTest.java    |   2 +-
 .../matchers/IsSingleRecipientTest.java         |   2 +-
 .../transport/matchers/NESSpamCheckTest.java    |   2 +-
 .../transport/matchers/RelayLimitTest.java      |  16 +--
 .../matchers/SMTPIsAuthNetworkTest.java         |   2 +-
 .../transport/matchers/SizeGreaterThanTest.java |   2 +-
 .../impl/matchers/BaseMatchersTest.java         |   2 +-
 .../james/transport/mailets/BounceTest.java     |   2 +-
 .../mailets/RecipientRewriteTableTest.java      |  32 ++---
 .../transport/mailets/RecordingMailContext.java | 120 +++++++++++++++++--
 .../mailets/delivery/SieveMailetTest.java       |  33 ++---
 .../mailets/delivery/ToRecipientFolderTest.java |   2 +-
 .../managesieve/ManageSieveMailetTestCase.java  |   2 +-
 .../AbstractRemoteAddrInNetworkTest.java        |  10 +-
 .../matchers/InSpammerBlacklistTest.java        |   9 +-
 36 files changed, 305 insertions(+), 178 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java
index 19cc53f..7c9dc5f 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java
@@ -45,6 +45,21 @@ import com.google.common.collect.Lists;
 @SuppressWarnings("deprecation")
 public class FakeMailContext implements MailetContext {
 
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public static FakeMailContext defaultContext() {
+        return builder().build();
+    }
+
+    public static class Builder {
+
+        public FakeMailContext build() {
+            return new FakeMailContext();
+        }
+    }
+
     public static class SentMail {
 
         private final MailAddress sender;
@@ -102,10 +117,14 @@ public class FakeMailContext implements MailetContext {
                 .toString();
         }
     }
-    
-    HashMap<String, Object> attributes = new HashMap<String, Object>();
 
-    List<SentMail> sentMails = new ArrayList<SentMail>();
+    private final HashMap<String, Object> attributes;
+    private final List<SentMail> sentMails;
+
+    private FakeMailContext() {
+        attributes = new HashMap<String, Object>();
+        sentMails = new ArrayList<SentMail>();
+    }
 
     public void bounce(Mail mail, String message) throws MessagingException {
         // trivial implementation

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailetConfig.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailetConfig.java b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailetConfig.java
index fd597dd..83533c1 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailetConfig.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailetConfig.java
@@ -36,7 +36,7 @@ public class FakeMailetConfig implements MailetConfig {
     private final Properties properties;
     
     public FakeMailetConfig() {
-    	this("A Mailet", new FakeMailContext());
+    	this("A Mailet", FakeMailContext.defaultContext());
     }
     
     public FakeMailetConfig(String mailetName, MailetContext mc) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
index 0eaffc4..9b8d8cf 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
@@ -19,11 +19,10 @@
 
 package org.apache.james.transport.mailets;
 
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import static org.assertj.core.api.Assertions.assertThat;
-
 import java.io.IOException;
 import java.util.Collection;
 import java.util.List;
@@ -91,7 +90,7 @@ public class AddFooterTest {
     @Before
     public void setup() {
         mailet = new AddFooter();
-        mailetConfig = new FakeMailetConfig("Test", new FakeMailContext());
+        mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
 
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddSubjectPrefixTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddSubjectPrefixTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddSubjectPrefixTest.java
index 8b80803..9715900 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddSubjectPrefixTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddSubjectPrefixTest.java
@@ -45,7 +45,7 @@ public class AddSubjectPrefixTest {
     @Before
     public void setup() {
         mailet = new AddSubjectPrefix();
-        mailetConfig = new FakeMailetConfig("Test", new FakeMailContext());
+        mailetConfig = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
     }
     
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/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 f7e4808..5c66f3e 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,20 +20,19 @@
 
 package org.apache.james.transport.mailets;
 
-import junit.framework.TestCase;
+import java.io.UnsupportedEncodingException;
 
-import org.apache.james.transport.mailets.MailAttributesToMimeHeaders;
+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.apache.mailet.Mailet;
 
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.ParseException;
-
-import java.io.UnsupportedEncodingException;
+import junit.framework.TestCase;
 
 public class MailAttributesToMimeHeadersTest extends TestCase {
 
@@ -69,7 +68,7 @@ public class MailAttributesToMimeHeadersTest extends TestCase {
     private void setupMailet() throws MessagingException {
         mailet = new MailAttributesToMimeHeaders();
         FakeMailetConfig mci = new FakeMailetConfig("Test",
-                new FakeMailContext());
+                FakeMailContext.defaultContext());
         mci.setProperty("simplemapping", getConfig1());
         String config2 = MAIL_ATTRIBUTE_NAME2 + "; " + HEADER_NAME2;
         mci.setProperty("simplemapping", config2);

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/mailets/OnlyTextTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/OnlyTextTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/OnlyTextTest.java
index feb16c3..2a54c55 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/OnlyTextTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/OnlyTextTest.java
@@ -19,12 +19,8 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.james.transport.mailets.OnlyText;
-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.Mail;
-import org.apache.mailet.Mailet;
+import java.io.IOException;
+import java.util.Properties;
 
 import javax.mail.MessagingException;
 import javax.mail.Session;
@@ -32,8 +28,11 @@ import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
-import java.io.IOException;
-import java.util.Properties;
+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 junit.framework.TestCase;
 
@@ -54,7 +53,7 @@ public class OnlyTextTest extends TestCase {
         Mail mail;
 
         mailet = new OnlyText();
-        mci = new FakeMailetConfig("Test", new FakeMailContext());
+        mci = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
         mailet.init(mci);
 
         // ----------------
@@ -169,7 +168,7 @@ public class OnlyTextTest extends TestCase {
 
     public void testHtml2Text() throws MessagingException {
         OnlyText mailet = new OnlyText();
-        mailet.init(new FakeMailetConfig("Test", new FakeMailContext()));
+        mailet.init(new FakeMailetConfig("Test", FakeMailContext.defaultContext()));
 
         String html;
         html = "<b>Prova di html</b><br /><p>Un paragrafo</p><LI>e ci mettiamo anche una lista</LI><br>";

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveAllMailAttributesTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveAllMailAttributesTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveAllMailAttributesTest.java
index 7883252..5847018 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveAllMailAttributesTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveAllMailAttributesTest.java
@@ -20,7 +20,10 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.james.transport.mailets.RemoveAllMailAttributes;
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.ParseException;
+
 import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.base.test.FakeMailContext;
@@ -30,10 +33,6 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.ParseException;
-
 public class RemoveAllMailAttributesTest {
 
     private Mail mockedMail;
@@ -43,7 +42,7 @@ public class RemoveAllMailAttributesTest {
     @Before
     public void setUp() throws Exception {
         mailet = new RemoveAllMailAttributes();
-        FakeMailetConfig mci = new FakeMailetConfig("Test", new FakeMailContext());
+        FakeMailetConfig mci = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
         mailet.init(mci);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMailAttributeTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMailAttributeTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMailAttributeTest.java
index 275d246..05eaf69 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMailAttributeTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMailAttributeTest.java
@@ -19,7 +19,9 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.james.transport.mailets.RemoveMailAttribute;
+import javax.mail.MessagingException;
+import javax.mail.internet.ParseException;
+
 import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.base.test.FakeMail;
@@ -28,9 +30,6 @@ import org.apache.mailet.base.test.FakeMailetConfig;
 import org.junit.Assert;
 import org.junit.Test;
 
-import javax.mail.MessagingException;
-import javax.mail.internet.ParseException;
-
 public class RemoveMailAttributeTest {
 
     public static final String MAIL_ATTRIBUTE_NAME1 = "org.apache.james.test.junit";
@@ -47,7 +46,7 @@ public class RemoveMailAttributeTest {
     private Mailet setupMailet(String attribute) throws MessagingException {
         Mailet mailet = new RemoveMailAttribute();
         FakeMailetConfig mci = new FakeMailetConfig("Test",
-                new FakeMailContext());
+                FakeMailContext.defaultContext());
         if (attribute != null) {
             mci.setProperty("name", attribute);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java
index ced7d20..33685cf 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java
@@ -20,7 +20,9 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.james.transport.mailets.RemoveMimeHeader;
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.base.test.FakeMail;
@@ -30,9 +32,6 @@ import org.apache.mailet.base.test.MailUtil;
 import org.junit.Assert;
 import org.junit.Test;
 
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-
 public class RemoveMimeHeaderTest {
 
     private final static String HEADER1 = "header1";
@@ -41,7 +40,7 @@ public class RemoveMimeHeaderTest {
 
     private GenericMailet setupMockedMailet(String name1, String name2) throws MessagingException {
         GenericMailet mailet = new RemoveMimeHeader();
-        FakeMailetConfig mci = new FakeMailetConfig("Test", new FakeMailContext());
+        FakeMailetConfig mci = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
         if (name1 != null) mci.setProperty("name", name1);
         if (name2 != null) mci.setProperty("name", name2);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java
index b2749e1..7c359a7 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java
@@ -19,7 +19,14 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.james.transport.mailets.ReplaceContent;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+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.Mailet;
 import org.apache.mailet.base.test.FakeMail;
@@ -28,13 +35,6 @@ import org.apache.mailet.base.test.FakeMailetConfig;
 import org.junit.Assert;
 import org.junit.Test;
 
-import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.Properties;
-
 public class ReplaceContentTest {
 
     @Test
@@ -45,7 +45,7 @@ public class ReplaceContentTest {
         Mail mail;
 
         mailet = new ReplaceContent();
-        mci = new FakeMailetConfig("Test", new FakeMailContext());
+        mci = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
         mci.setProperty("subjectPattern", "/prova/PROVA/i/,/a/e//,/o/o/i/");
         mci.setProperty("bodyPattern", "/prova/PROVA/i/," + "/a/e//,"
                 + "/o/o/i/,/\\u00E8/e'//," + "/prova([^\\/]*?)ble/X$1Y/im/,"
@@ -67,7 +67,7 @@ public class ReplaceContentTest {
         // ------------------
 
         mailet = new ReplaceContent();
-        mci = new FakeMailetConfig("Test", new FakeMailContext());
+        mci = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
         mci.setProperty("subjectPatternFile", "#/org/apache/james/mailet/standard/mailets/replaceSubject.patterns");
         mailet.init(mci);
 
@@ -84,7 +84,7 @@ public class ReplaceContentTest {
         // ------------------
 
         mailet = new ReplaceContent();
-        mci = new FakeMailetConfig("Test", new FakeMailContext());
+        mci = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
         mci.setProperty("bodyPattern", "/--messaggio originale--/<quote>/i/,"
                 +
                 // "/<quote>([^\\0]*)(\\r\\n)([^>]+)/<quote>$1$2>$3/imr/,"+
@@ -110,7 +110,7 @@ public class ReplaceContentTest {
         // ------------------
 
         mailet = new ReplaceContent();
-        mci = new FakeMailetConfig("Test", new FakeMailContext());
+        mci = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
         mci.setProperty("bodyPattern", "/\\u2026/...//");
         mailet.init(mci);
 
@@ -139,7 +139,7 @@ public class ReplaceContentTest {
         Mail mail;
 
         mailet = new ReplaceContent();
-        mci = new FakeMailetConfig("Test", new FakeMailContext());
+        mci = new FakeMailetConfig("Test", FakeMailContext.defaultContext());
         mci.setProperty("bodyPattern", "/[\\u2018\\u2019\\u201A]/'//,"
                 + "/[\\u201C\\u201D\\u201E]/\"//," + "/[\\x91\\x92\\x82]/'//,"
                 + "/[\\x93\\x94\\x84]/\"//," + "/\\x85/...//," + "/\\x8B/<//,"

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
index 41770d9..ae59925 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
@@ -20,19 +20,19 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.james.transport.mailets.SetMailAttribute;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import javax.mail.MessagingException;
+
 import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.base.test.FakeMailContext;
 import org.apache.mailet.base.test.FakeMailetConfig;
 import org.apache.mailet.base.test.MailUtil;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
 import org.junit.Before;
 import org.junit.Test;
 
-import javax.mail.MessagingException;
-
 public class SetMailAttributeTest {
 
     private Mailet mailet;
@@ -48,7 +48,7 @@ public class SetMailAttributeTest {
         mockedMail = MailUtil.createMockMail2Recipients(null);
         mailet = new SetMailAttribute();
         FakeMailetConfig mci = new FakeMailetConfig("Test",
-                new FakeMailContext());
+                FakeMailContext.defaultContext());
         mci.setProperty(ATTRIBUTE_NAME1, "true");
         mci.setProperty(ATTRIBUTE_NAME2, "true");
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/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 5c1515b..8475334 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,7 +20,9 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.james.transport.mailets.SetMimeHeader;
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
 import org.apache.mailet.Mailet;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailContext;
@@ -30,9 +32,6 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-
 public class SetMimeHeaderTest {
 
     private Mailet mailet;
@@ -57,7 +56,7 @@ public class SetMimeHeaderTest {
     public void setUp() throws Exception {
         mailet = new SetMimeHeader();
         FakeMailetConfig mci = new FakeMailetConfig("Test",
-                new FakeMailContext());
+                FakeMailContext.defaultContext());
         mci.setProperty("name", HEADER_NAME);
         mci.setProperty("value", HEADER_VALUE);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
index d3d9cae..7c8dd71 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
@@ -119,7 +119,7 @@ public class StripAttachmentTest {
         Mailet mailet = new StripAttachment();
 
         FakeMailetConfig mci = new FakeMailetConfig("Test",
-                new FakeMailContext());
+                FakeMailContext.defaultContext());
         mci.setProperty("directory", "./");
         mci.setProperty("remove", "all");
         mci.setProperty("notpattern", "^(winmail\\.dat$)");
@@ -250,7 +250,7 @@ public class StripAttachmentTest {
             IOException {
         Mailet strip = new StripAttachment();
         FakeMailetConfig mci = new FakeMailetConfig("Test",
-                new FakeMailContext());
+                FakeMailContext.defaultContext());
         mci.setProperty("attribute", "my.attribute");
         mci.setProperty("remove", "all");
         mci.setProperty("notpattern", ".*\\.tmp.*");
@@ -258,12 +258,12 @@ public class StripAttachmentTest {
 
         Mailet recover = new RecoverAttachment();
         FakeMailetConfig mci2 = new FakeMailetConfig("Test",
-                new FakeMailContext());
+                FakeMailContext.defaultContext());
         mci2.setProperty("attribute", "my.attribute");
         recover.init(mci2);
 
         Mailet onlyText = new OnlyText();
-        onlyText.init(new FakeMailetConfig("Test", new FakeMailContext()));
+        onlyText.init(new FakeMailetConfig("Test", FakeMailContext.defaultContext()));
 
         MimeMessage message = new MimeMessage(Session
                 .getDefaultInstance(new Properties()));
@@ -340,7 +340,7 @@ public class StripAttachmentTest {
         Mailet mailet = new StripAttachment();
 
         FakeMailetConfig mci = new FakeMailetConfig("Test",
-                new FakeMailContext());
+                FakeMailContext.defaultContext());
         mci.setProperty("directory", "./");
         mci.setProperty("remove", "all");
         mci.setProperty("pattern", ".*\\.tmp");

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/mailets/ToProcessorTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ToProcessorTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ToProcessorTest.java
index 21c9e58..de395cb 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ToProcessorTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ToProcessorTest.java
@@ -20,7 +20,12 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.james.transport.mailets.ToProcessor;
+import java.util.Arrays;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.ParseException;
+
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.Mailet;
@@ -30,11 +35,6 @@ import org.apache.mailet.base.test.FakeMailetConfig;
 import org.junit.Assert;
 import org.junit.Test;
 
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.ParseException;
-import java.util.Arrays;
-
 public class ToProcessorTest {
 
     private MimeMessage mockedMimeMessage;
@@ -66,7 +66,7 @@ public class ToProcessorTest {
     private void setupMailet() throws MessagingException {
         mailet = new ToProcessor();
         FakeMailetConfig mci = new FakeMailetConfig("Test",
-                new FakeMailContext());
+                FakeMailContext.defaultContext());
         if (processor != null) {
             mci.setProperty("processor", processor);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractHasMailAttributeTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractHasMailAttributeTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractHasMailAttributeTest.java
index 334811e..7fd5e51 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractHasMailAttributeTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractHasMailAttributeTest.java
@@ -26,15 +26,15 @@ import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.ParseException;
 
-import junit.framework.TestCase;
-
+import org.apache.mailet.MailAddress;
+import org.apache.mailet.Matcher;
+import org.apache.mailet.base.GenericMatcher;
 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.apache.mailet.base.GenericMatcher;
-import org.apache.mailet.MailAddress;
-import org.apache.mailet.Matcher;
+
+import junit.framework.TestCase;
 
 public abstract class AbstractHasMailAttributeTest extends TestCase {
     protected MimeMessage mockedMimeMessage;
@@ -72,7 +72,7 @@ public abstract class AbstractHasMailAttributeTest extends TestCase {
     protected void setupMatcher() throws MessagingException {
         matcher = createMatcher();
         FakeMatcherConfig mci = new FakeMatcherConfig(getConfigOption()
-                + getHasMailAttribute(), new FakeMailContext());
+                + getHasMailAttribute(), FakeMailContext.defaultContext());
         matcher.init(mci);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractRecipientIsTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractRecipientIsTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractRecipientIsTest.java
index c72b867..b94fb12 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractRecipientIsTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractRecipientIsTest.java
@@ -22,15 +22,16 @@ package org.apache.james.transport.matchers;
 
 import java.io.UnsupportedEncodingException;
 import java.util.Arrays;
-import javax.mail.MessagingException;
 
-import junit.framework.TestCase;
+import javax.mail.MessagingException;
 
+import org.apache.mailet.MailAddress;
+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.MailAddress;
-import org.apache.mailet.Matcher;
+
+import junit.framework.TestCase;
 
 public abstract class AbstractRecipientIsTest extends TestCase {
 
@@ -58,7 +59,7 @@ public abstract class AbstractRecipientIsTest extends TestCase {
     protected void setupMatcher() throws MessagingException {
         matcher = createMatcher();
         FakeMatcherConfig mci = new FakeMatcherConfig("RecipientIs="
-                + getRecipientName(), new FakeMailContext());
+                + getRecipientName(), FakeMailContext.defaultContext());
         matcher.init(mci);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractSenderIsTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractSenderIsTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractSenderIsTest.java
index 8a383f8..2fb4978 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractSenderIsTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractSenderIsTest.java
@@ -31,13 +31,13 @@ import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.ParseException;
 
-import junit.framework.TestCase;
-
-import org.apache.mailet.base.test.FakeMailContext;
-import org.apache.mailet.base.test.FakeMatcherConfig;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.Matcher;
+import org.apache.mailet.base.test.FakeMailContext;
+import org.apache.mailet.base.test.FakeMatcherConfig;
+
+import junit.framework.TestCase;
 
 public abstract class AbstractSenderIsTest extends TestCase {
 
@@ -181,7 +181,7 @@ public abstract class AbstractSenderIsTest extends TestCase {
     protected void setupMatcher() throws MessagingException {
         matcher = createMatcher();
         FakeMatcherConfig mci = new FakeMatcherConfig(getConfigOption()
-                + getConfigValue(), new FakeMailContext());
+                + getConfigValue(), FakeMailContext.defaultContext());
         matcher.init(mci);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/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
index 7e3fc48..b46a8b5 100644
--- 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
@@ -20,17 +20,19 @@
 
 package org.apache.james.transport.matchers;
 
-import junit.framework.TestCase;
-import org.apache.mailet.base.test.FakeMimeMessage;
+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 org.apache.mailet.Matcher;
 
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-import java.io.UnsupportedEncodingException;
+import junit.framework.TestCase;
 
 public abstract class AbstractSubjectIsTest extends TestCase {
 
@@ -65,7 +67,7 @@ public abstract class AbstractSubjectIsTest extends TestCase {
     protected void setupMatcher() throws MessagingException {
         matcher = createMatcher();
         FakeMatcherConfig mci = new FakeMatcherConfig(getConfigOption()
-                + getSubjectName(), new FakeMailContext());
+                + getSubjectName(), FakeMailContext.defaultContext());
         matcher.init(mci);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/matchers/AllTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/AllTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/AllTest.java
index e019357..98552b2 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/AllTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/AllTest.java
@@ -44,7 +44,7 @@ public class AllTest {
     public void setupMatcher() throws MessagingException {
         matcher = new All();
         FakeMatcherConfig mci = new FakeMatcherConfig("All",
-                new FakeMailContext());
+                FakeMailContext.defaultContext());
         matcher.init(mci);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/matchers/FetchedFromTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/FetchedFromTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/FetchedFromTest.java
index 211403a..91a4827 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/FetchedFromTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/FetchedFromTest.java
@@ -71,7 +71,7 @@ public class FetchedFromTest {
         setupMockedMimeMessage();
         matcher = new FetchedFrom();
         FakeMatcherConfig mci = new FakeMatcherConfig("FetchedFrom="
-                + HEADER_VALUE, new FakeMailContext());
+                + HEADER_VALUE, FakeMailContext.defaultContext());
         matcher.init(mci);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/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 ca7ed5d..c49000f 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
@@ -56,49 +56,49 @@ public class HasHeaderTest {
 
     @Test
     public void matchShouldReturnAddressesWhenRightHeaderNameWithoutValue() throws MessagingException {
-        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1, new FakeMailContext()));
+        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1, FakeMailContext.defaultContext()));
 
         assertThat(matcher.match(mockedMail)).containsAll(mockedMail.getRecipients());
     }
 
     @Test
     public void matchShouldReturnNullWhenWrongHeaderNameWithoutValue() throws MessagingException {
-        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_2, new FakeMailContext()));
+        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_2, FakeMailContext.defaultContext()));
 
         assertThat(matcher.match(mockedMail)).isNull();
     }
 
     @Test
     public void matchShouldReturnAddressesWhenGoodHeaderNameAndValue() throws MessagingException {
-        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "=" + HEADER_VALUE_1, new FakeMailContext()));
+        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "=" + HEADER_VALUE_1, FakeMailContext.defaultContext()));
 
         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()));
+        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "=" + HEADER_VALUE_2, FakeMailContext.defaultContext()));
 
         assertThat(matcher.match(mockedMail)).isNull();
     }
 
     @Test
     public void matchShouldReturnNullWhenWrongHeaderNameWithValueSpecified() throws MessagingException {
-        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_2 + "=" + HEADER_VALUE_2, new FakeMailContext()));
+        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_2 + "=" + HEADER_VALUE_2, FakeMailContext.defaultContext()));
 
         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()));
+        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "=" + HEADER_VALUE_1 + "=any", FakeMailContext.defaultContext()));
 
         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()));
+        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "=" + HEADER_VALUE_1, FakeMailContext.defaultContext()));
         Mail mail = MailUtil.createMockMail2Recipients(MailUtil.createMimeMessage());
 
         assertThat(matcher.match(mail)).isNull();
@@ -106,7 +106,7 @@ public class HasHeaderTest {
 
     @Test
     public void matchShouldNotMatchMailsWithNoHeaderWhenValueNotSpecified() throws MessagingException {
-        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1, new FakeMailContext()));
+        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1, FakeMailContext.defaultContext()));
         Mail mail = MailUtil.createMockMail2Recipients(MailUtil.createMimeMessage());
 
         assertThat(matcher.match(mail)).isNull();
@@ -114,14 +114,14 @@ public class HasHeaderTest {
 
     @Test
     public void matchShouldReturnNullWhenOneConditionIsNotTrue() throws MessagingException {
-        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "+" + HEADER_NAME_2, new FakeMailContext()));
+        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "+" + HEADER_NAME_2, FakeMailContext.defaultContext()));
 
         assertThat(matcher.match(mockedMail)).isNull();
     }
 
     @Test
     public void matchShouldReturnAddressesWhenAllConditionsMatch() throws MessagingException {
-        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "+" + HEADER_NAME_2, new FakeMailContext()));
+        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "+" + HEADER_NAME_2, FakeMailContext.defaultContext()));
         MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
         mimeMessage.addHeader(HEADER_NAME_1, HEADER_VALUE_1);
         mimeMessage.addHeader(HEADER_NAME_2, HEADER_VALUE_2);
@@ -133,7 +133,7 @@ public class HasHeaderTest {
 
     @Test
     public void matchShouldFindTheRightHeaderLineWhenUsedWithValue() throws MessagingException {
-        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "=" + HEADER_VALUE_2, new FakeMailContext()));
+        matcher.init(new FakeMatcherConfig("HasHeader=" + HEADER_NAME_1 + "=" + HEADER_VALUE_2, FakeMailContext.defaultContext()));
         MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
         mimeMessage.addHeader(HEADER_NAME_1, HEADER_VALUE_1);
         mimeMessage.addHeader(HEADER_NAME_1, HEADER_VALUE_2);

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/matchers/HostIsTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HostIsTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HostIsTest.java
index b2cb5d6..8f85885 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HostIsTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HostIsTest.java
@@ -45,7 +45,7 @@ public class HostIsTest {
         fakeMail = new FakeMail();
 
         matcher = new HostIs();
-        FakeMatcherConfig mci = new FakeMatcherConfig("HostIs=" + JAMES_APACHE_ORG, new FakeMailContext());
+        FakeMatcherConfig mci = new FakeMatcherConfig("HostIs=" + JAMES_APACHE_ORG, FakeMailContext.defaultContext());
         matcher.init(mci);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/matchers/IsSingleRecipientTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/IsSingleRecipientTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/IsSingleRecipientTest.java
index 1423fdb..19b0a54 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/IsSingleRecipientTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/IsSingleRecipientTest.java
@@ -55,7 +55,7 @@ public class IsSingleRecipientTest {
 
         matcher = new IsSingleRecipient();
         FakeMatcherConfig mci = new FakeMatcherConfig("IsSingleRecipient",
-                new FakeMailContext());
+                FakeMailContext.defaultContext());
         matcher.init(mci);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/matchers/NESSpamCheckTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/NESSpamCheckTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/NESSpamCheckTest.java
index 74a04a2..5727e2e 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/NESSpamCheckTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/NESSpamCheckTest.java
@@ -62,7 +62,7 @@ public class NESSpamCheckTest {
     private void setupMatcher() throws MessagingException {
         setupMockedMimeMessage();
         matcher = new NESSpamCheck();
-        FakeMatcherConfig mci = new FakeMatcherConfig("NESSpamCheck", new FakeMailContext());
+        FakeMatcherConfig mci = new FakeMatcherConfig("NESSpamCheck", FakeMailContext.defaultContext());
         matcher.init(mci);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java
index 58e2701..cb73a0a 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java
@@ -57,34 +57,34 @@ public class RelayLimitTest {
 
     @Test(expected = MessagingException.class)
     public void relayLimitShouldBeANumber() throws Exception {
-        testee.init(new FakeMatcherConfig("RelayLimit=Abc", new FakeMailContext()));
+        testee.init(new FakeMatcherConfig("RelayLimit=Abc", FakeMailContext.defaultContext()));
     }
 
     @Test(expected = MessagingException.class)
     public void relayLimitShouldBeSpecified() throws Exception {
-        testee.init(new FakeMatcherConfig("RelayLimit=", new FakeMailContext()));
+        testee.init(new FakeMatcherConfig("RelayLimit=", FakeMailContext.defaultContext()));
     }
 
     @Test(expected = MessagingException.class)
     public void relayLimitShouldNotBeNull() throws Exception {
-        testee.init(new FakeMatcherConfig("RelayLimit=0", new FakeMailContext()));
+        testee.init(new FakeMatcherConfig("RelayLimit=0", FakeMailContext.defaultContext()));
     }
 
     @Test(expected = MessagingException.class)
     public void relayLimitShouldNotBeEqualToZero() throws Exception {
-        testee.init(new FakeMatcherConfig("RelayLimit=-1", new FakeMailContext()));
+        testee.init(new FakeMatcherConfig("RelayLimit=-1", FakeMailContext.defaultContext()));
     }
 
     @Test
     public void matchShouldReturnNullWhenNoReceivedHeader() throws Exception {
-        testee.init(new FakeMatcherConfig("RelayLimit=2", new FakeMailContext()));
+        testee.init(new FakeMatcherConfig("RelayLimit=2", FakeMailContext.defaultContext()));
 
         assertThat(testee.match(mail)).isNull();
     }
 
     @Test
     public void matchShouldReturnNullWhenNotEnoughReceivedHeader() throws Exception {
-        testee.init(new FakeMatcherConfig("RelayLimit=2", new FakeMailContext()));
+        testee.init(new FakeMatcherConfig("RelayLimit=2", FakeMailContext.defaultContext()));
 
         mimeMessage.addHeader(RFC2822Headers.RECEIVED, "any");
 
@@ -93,7 +93,7 @@ public class RelayLimitTest {
 
     @Test
     public void matchShouldReturnAddressWhenEqualToLimit() throws Exception {
-        testee.init(new FakeMatcherConfig("RelayLimit=2", new FakeMailContext()));
+        testee.init(new FakeMatcherConfig("RelayLimit=2", FakeMailContext.defaultContext()));
 
         mimeMessage.addHeader(RFC2822Headers.RECEIVED, "any");
         mimeMessage.addHeader(RFC2822Headers.RECEIVED, "any");
@@ -103,7 +103,7 @@ public class RelayLimitTest {
 
     @Test
     public void matchShouldReturnAddressWhenOverLimit() throws Exception {
-        testee.init(new FakeMatcherConfig("RelayLimit=2", new FakeMailContext()));
+        testee.init(new FakeMatcherConfig("RelayLimit=2", FakeMailContext.defaultContext()));
 
         mimeMessage.addHeader(RFC2822Headers.RECEIVED, "any");
         mimeMessage.addHeader(RFC2822Headers.RECEIVED, "any");

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/matchers/SMTPIsAuthNetworkTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/SMTPIsAuthNetworkTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/SMTPIsAuthNetworkTest.java
index 2f2fb66..d3a2fb4 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/SMTPIsAuthNetworkTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/SMTPIsAuthNetworkTest.java
@@ -57,7 +57,7 @@ public class SMTPIsAuthNetworkTest {
     private void setupMatcher() throws MessagingException {
         matcher = new SMTPIsAuthNetwork();
         FakeMatcherConfig mci = new FakeMatcherConfig("SMTPIsAuthNetwork",
-                new FakeMailContext());
+                FakeMailContext.defaultContext());
         matcher.init(mci);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/mailet/standard/src/test/java/org/apache/james/transport/matchers/SizeGreaterThanTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/SizeGreaterThanTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/SizeGreaterThanTest.java
index 0fb6727..230aac2 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/SizeGreaterThanTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/SizeGreaterThanTest.java
@@ -50,7 +50,7 @@ public class SizeGreaterThanTest {
     private void setupMatcher(String size) throws MessagingException {
         matcher = new SizeGreaterThan();
         FakeMatcherConfig mci = new FakeMatcherConfig("SizeGreaterThan=" + size,
-                new FakeMailContext());
+                FakeMailContext.defaultContext());
         matcher.init(mci);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/matchers/BaseMatchersTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/matchers/BaseMatchersTest.java b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/matchers/BaseMatchersTest.java
index 65954d7..1f99c58 100644
--- a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/matchers/BaseMatchersTest.java
+++ b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/matchers/BaseMatchersTest.java
@@ -47,7 +47,7 @@ public class BaseMatchersTest {
 
     void setupCompositeMatcher(String matcherName, Class<? extends GenericCompositeMatcher> matcherClass)
             throws Exception {
-        context = new FakeMailContext();
+        context = FakeMailContext.defaultContext();
         matcher = matcherClass.newInstance();
         FakeMatcherConfig mci = new FakeMatcherConfig(matcherName, context);
         matcher.init(mci);

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java
index f0a19e0..a9f8bed 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java
@@ -55,7 +55,7 @@ public class BounceTest {
         bounce = new Bounce();
         DNSService dnsService = mock(DNSService.class);
         bounce.setDNSService(dnsService);
-        fakeMailContext = new FakeMailContext();
+        fakeMailContext = FakeMailContext.defaultContext();
 
         when(dnsService.getLocalHost()).thenThrow(new UnknownHostException());
         bounce.init(new FakeMailetConfig(MAILET_NAME, fakeMailContext));

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java
index 08188f4..6a8ed7a 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java
@@ -18,6 +18,18 @@
  ****************************************************************/
 package org.apache.james.transport.mailets;
 
+import static org.apache.james.transport.mailets.RecipientRewriteTableMock.mapFrom;
+import static org.apache.james.transport.mailets.RecipientRewriteTableMock.rewriteTableMock;
+import static org.junit.Assert.assertEquals;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.Properties;
+
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetContext;
@@ -29,31 +41,13 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import javax.mail.Message;
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Properties;
-
-import static org.apache.james.transport.mailets.RecipientRewriteTableMock.mapFrom;
-import static org.apache.james.transport.mailets.RecipientRewriteTableMock.rewriteTableMock;
-import static org.junit.Assert.assertEquals;
-
 public class RecipientRewriteTableTest {
 
     private org.apache.james.transport.mailets.RecipientRewriteTable table;
 
     @Before
     public void setUp() throws Exception {
-        final FakeMailContext mockMailetContext = new FakeMailContext() {
-
-            @Override
-            public boolean isLocalServer(String serverName) {
-                return serverName.equals("localhost");
-
-            }
-        };
+        final FakeMailContext mockMailetContext = FakeMailContext.defaultContext();
 
         table = createRecipientRewriteMailet(
             rewriteTableMock(mapFrom("test@localhost").to("whatever@localhost", "blah@localhost")),

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecordingMailContext.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecordingMailContext.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecordingMailContext.java
index 643d1e8..2a0a0b5 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecordingMailContext.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecordingMailContext.java
@@ -18,22 +18,33 @@
  ****************************************************************/
 package org.apache.james.transport.mailets;
 
-import org.apache.mailet.Mail;
-import org.apache.mailet.MailAddress;
-import org.apache.mailet.base.test.FakeMailContext;
-
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
 import java.util.Collection;
+import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.mailet.HostAddress;
+import org.apache.mailet.LookupException;
+import org.apache.mailet.Mail;
+import org.apache.mailet.MailAddress;
+import org.apache.mailet.MailetContext;
+import org.apache.mailet.TemporaryLookupException;
+import org.apache.mailet.base.test.FakeMailContext;
+
 /**
  * @since 15.12.12 12:02
  */
-public class RecordingMailContext extends FakeMailContext {
+public class RecordingMailContext implements MailetContext {
 
     private final List<SendMailEvent> sendmails = new LinkedList<SendMailEvent>();
+    private final FakeMailContext context;
+
+    public RecordingMailContext() {
+        context = FakeMailContext.defaultContext();
+    }
 
     @Override
     public boolean isLocalServer(String serverName) {
@@ -118,4 +129,99 @@ public class RecordingMailContext extends FakeMailContext {
         }
     }
 
+    @Override
+    public int getMajorVersion() {
+        return context.getMajorVersion();
+    }
+
+    @Override
+    public int getMinorVersion() {
+        return context.getMinorVersion();
+    }
+
+    @Override
+    public String getServerInfo() {
+        return context.getServerInfo();
+    }
+
+    @Override
+    public Iterator<String> getAttributeNames() {
+        return context.getAttributeNames();
+    }
+
+    @Override
+    public Object getAttribute(String name) {
+        return context.getAttribute(name);
+    }
+
+    @Override
+    public void setAttribute(String name, Object value) {
+        context.setAttribute(name, value);
+    }
+
+    @Override
+    public void removeAttribute(String name) {
+        context.removeAttribute(name);
+    }
+
+    @Override
+    public void log(String message) {
+        context.log(message);
+    }
+
+    @Override
+    public void log(String message, Throwable t) {
+        context.log(message, t);
+    }
+
+    @Override
+    public void log(LogLevel level, String message) {
+        context.log(level, message);
+    }
+
+    @Override
+    public void log(LogLevel level, String message, Throwable t) {
+        context.log(level, message, t);
+    }
+
+    @Override
+    public MailAddress getPostmaster() {
+        return context.getPostmaster();
+    }
+
+    @Override
+    public boolean isLocalUser(String userAccount) {
+        return context.isLocalUser(userAccount);
+    }
+
+    @Override
+    public boolean isLocalEmail(MailAddress mailAddress) {
+        return context.isLocalEmail(mailAddress);
+    }
+
+    @Override
+    public Collection<String> getMailServers(String domain) {
+        return context.getMailServers(domain);
+    }
+
+    @Override
+    public Iterator<HostAddress> getSMTPHostAddresses(String domain) {
+        return context.getSMTPHostAddresses(domain);
+    }
+
+    @Override
+    public void bounce(Mail mail, String message) throws MessagingException {
+        context.bounce(mail, message);
+    }
+
+    @Override
+    public void bounce(Mail mail, String message, MailAddress bouncer) throws MessagingException {
+        context.bounce(mail, message, bouncer);
+    }
+
+    @Override
+    public List<String> dnsLookup(String name, RecordType type) throws TemporaryLookupException, LookupException {
+        return context.dnsLookup(name, type);
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveMailetTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveMailetTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveMailetTest.java
index 250d3f1..d9800f4 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveMailetTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveMailetTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.transport.mailets.delivery;
 
 import static org.assertj.core.api.Assertions.assertThat;
-
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
@@ -29,7 +28,21 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.verifyZeroInteractions;
 import static org.mockito.Mockito.when;
 
-import com.google.common.collect.Lists;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Date;
+import java.util.Properties;
+
+import javax.activation.DataHandler;
+import javax.mail.Flags;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+import javax.mail.util.ByteArrayDataSource;
+
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
@@ -53,19 +66,7 @@ import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 import org.slf4j.Logger;
 
-import javax.activation.DataHandler;
-import javax.mail.Flags;
-import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
-import javax.mail.util.ByteArrayDataSource;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Date;
-import java.util.Properties;
+import com.google.common.collect.Lists;
 
 public class SieveMailetTest {
 
@@ -100,7 +101,7 @@ public class SieveMailetTest {
         resourceLocator = mock(ResourceLocator.class);
         usersRepository = mock(UsersRepository.class);
         mailboxManager = mock(MailboxManager.class);
-        fakeMailContext = new FakeMailContext();
+        fakeMailContext = FakeMailContext.defaultContext();
         fakeMailetConfig = new FakeMailetConfig("sieveMailet", fakeMailContext);
         sieveMailet = new SieveMailet(usersRepository, mailboxManager, resourceLocator, "INBOX");
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
index a8cd1f6..c9a0db3 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
@@ -76,7 +76,7 @@ public class ToRecipientFolderTest {
         usersRepository = mock(UsersRepository.class);
         mailboxManager = mock(MailboxManager.class);
 
-        mailetConfig = new FakeMailetConfig("RecipientFolderTest", new FakeMailContext());
+        mailetConfig = new FakeMailetConfig("RecipientFolderTest", FakeMailContext.defaultContext());
 
         recipientFolder = new ToRecipientFolder();
         recipientFolder.setMailboxManager(mailboxManager);

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
index e83e2f6..229294b 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
@@ -466,7 +466,7 @@ public class ManageSieveMailetTestCase {
         mailet.setSieveParser(sieveParser);
         mailet.setSieveRepository(sieveRepository);
         mailet.setUsersRepository(usersRepository);
-        fakeMailContext = new FakeMailContext();
+        fakeMailContext = FakeMailContext.defaultContext();
         FakeMailetConfig config = new FakeMailetConfig("ManageSieve mailet", fakeMailContext);
         config.setProperty("helpURL", "file:./src/test/resources/help.txt");
         mailet.init(config);

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/AbstractRemoteAddrInNetworkTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/AbstractRemoteAddrInNetworkTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/AbstractRemoteAddrInNetworkTest.java
index 8f0c18e..cd845ec 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/AbstractRemoteAddrInNetworkTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/AbstractRemoteAddrInNetworkTest.java
@@ -21,10 +21,16 @@ package org.apache.james.transport.matchers;
 import java.io.Serializable;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Iterator;
+
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.ParseException;
+
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.api.mock.MockDNSService;
 import org.apache.mailet.Mail;
@@ -188,7 +194,7 @@ public abstract class AbstractRemoteAddrInNetworkTest {
 
     protected void setupMatcher() throws MessagingException {
 
-        FakeMailContext mmc = new FakeMailContext();
+        FakeMailContext mmc = FakeMailContext.defaultContext();
         matcher = createMatcher();
         matcher.setDNSService(dnsServer);
         FakeMatcherConfig mci = new FakeMatcherConfig(getConfigOption() + getAllowedNetworks(), mmc);

http://git-wip-us.apache.org/repos/asf/james-project/blob/a24824e7/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/InSpammerBlacklistTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/InSpammerBlacklistTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/InSpammerBlacklistTest.java
index 258d79b..1ccefd6 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/InSpammerBlacklistTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/InSpammerBlacklistTest.java
@@ -18,19 +18,24 @@
  ****************************************************************/
 package org.apache.james.transport.matchers;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.Arrays;
 import java.util.Collection;
+
 import javax.mail.MessagingException;
 import javax.mail.internet.ParseException;
+
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.api.mock.MockDNSService;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailContext;
 import org.apache.mailet.base.test.FakeMatcherConfig;
-import static org.junit.Assert.*;
 import org.junit.Test;
 
 public class InSpammerBlacklistTest {
@@ -64,7 +69,7 @@ public class InSpammerBlacklistTest {
     private void setupMatcher(String blacklist) throws MessagingException {
         matcher = new InSpammerBlacklist();
         matcher.setDNSService(setUpDNSServer());
-        FakeMailContext context = new FakeMailContext();
+        FakeMailContext context = FakeMailContext.defaultContext();
         FakeMatcherConfig mci = new FakeMatcherConfig("InSpammerBlacklist=" + blacklist, context);
         matcher.init(mci);
     }


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


[2/6] james-project git commit: MAILET-99 Refactor MailetUtil.getInitParameter boolean method

Posted by ro...@apache.org.
MAILET-99 Refactor MailetUtil.getInitParameter boolean method


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

Branch: refs/heads/master
Commit: 00ce98211c2ea94cea61984548d289a53fe15855
Parents: fc95390
Author: Antoine Duprat <ad...@linagora.com>
Authored: Thu Aug 25 15:12:08 2016 +0200
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Aug 29 14:54:33 2016 +0200

----------------------------------------------------------------------
 .../main/java/org/apache/mailet/base/MailetUtil.java  | 14 ++++++--------
 .../java/org/apache/mailet/base/MailetUtilTest.java   |  6 ++++++
 2 files changed, 12 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/00ce9821/mailet/base/src/main/java/org/apache/mailet/base/MailetUtil.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/main/java/org/apache/mailet/base/MailetUtil.java b/mailet/base/src/main/java/org/apache/mailet/base/MailetUtil.java
index 5223eff..0155d5c 100644
--- a/mailet/base/src/main/java/org/apache/mailet/base/MailetUtil.java
+++ b/mailet/base/src/main/java/org/apache/mailet/base/MailetUtil.java
@@ -98,15 +98,13 @@ public class MailetUtil {
      * otherwise the default value
      */
     public static boolean getInitParameter(MailetConfig config, String name, boolean defaultValue) {
-        final String value = config.getInitParameter(name);
-        final boolean result;
+        String value = config.getInitParameter(name);
         if ("true".equalsIgnoreCase(value)) {
-            result = true;
-        } else if ("false".equalsIgnoreCase(value)){
-            result = false;
-        } else {
-            result = defaultValue;
+            return true;
         }
-        return result;
+        if ("false".equalsIgnoreCase(value)){
+            return false;
+        }
+        return defaultValue;
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/00ce9821/mailet/base/src/test/java/org/apache/mailet/base/MailetUtilTest.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/MailetUtilTest.java b/mailet/base/src/test/java/org/apache/mailet/base/MailetUtilTest.java
index fa3eaee..9a6700f 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/MailetUtilTest.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/MailetUtilTest.java
@@ -84,6 +84,12 @@ public class MailetUtilTest {
         assertThat(getParameterValued("gubbins", false)).isFalse();
     }
 
+    @Test
+    public void getInitParameterShouldReturnDefaultValueWhenNull() {
+        assertThat(MailetUtil.getInitParameter(config, A_PARAMETER, false)).isFalse();
+        assertThat(MailetUtil.getInitParameter(config, A_PARAMETER, true)).isTrue();
+    }
+
     private boolean getParameterValued(String value, boolean defaultValue) {
         config.clear();
         config.setProperty(A_PARAMETER, value);


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


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

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


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

Branch: refs/heads/master
Commit: 93d543c82da9cfa0ce07e8a3bdc0c95fd77defcb
Parents: 6c905bc 08eb7ec
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Mon Aug 29 15:37:02 2016 +0200
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Mon Aug 29 15:37:02 2016 +0200

----------------------------------------------------------------------
 mailet/base/pom.xml                             |  23 +-
 .../java/org/apache/mailet/base/MailetUtil.java |  14 +-
 .../org/apache/mailet/base/MailetUtilTest.java  |  72 +++---
 .../mailet/base/test/FakeMailContext.java       |  58 ++++-
 .../mailet/base/test/FakeMailetConfig.java      |   2 +-
 mailet/pom.xml                                  |   6 +
 mailet/standard/pom.xml                         |   5 +
 .../james/transport/mailets/LogMessage.java     |  95 ++++----
 .../james/transport/mailets/AddFooterTest.java  |   5 +-
 .../transport/mailets/AddSubjectPrefixTest.java |   2 +-
 .../james/transport/mailets/LogMessageTest.java | 220 +++++++++++++++++++
 .../MailAttributesToMimeHeadersTest.java        |  17 +-
 .../james/transport/mailets/OnlyTextTest.java   |  19 +-
 .../mailets/RemoveAllMailAttributesTest.java    |  11 +-
 .../mailets/RemoveMailAttributeTest.java        |   9 +-
 .../transport/mailets/RemoveMimeHeaderTest.java |   9 +-
 .../transport/mailets/ReplaceContentTest.java   |  26 +--
 .../transport/mailets/SetMailAttributeTest.java |  12 +-
 .../transport/mailets/SetMimeHeaderTest.java    |   9 +-
 .../transport/mailets/StripAttachmentTest.java  |  10 +-
 .../transport/mailets/ToProcessorTest.java      |  14 +-
 .../matchers/AbstractHasMailAttributeTest.java  |  12 +-
 .../matchers/AbstractRecipientIsTest.java       |  11 +-
 .../matchers/AbstractSenderIsTest.java          |  10 +-
 .../matchers/AbstractSubjectIsTest.java         |  16 +-
 .../james/transport/matchers/AllTest.java       |   2 +-
 .../transport/matchers/FetchedFromTest.java     |   2 +-
 .../james/transport/matchers/HasHeaderTest.java |  22 +-
 .../james/transport/matchers/HostIsTest.java    |   2 +-
 .../matchers/IsSingleRecipientTest.java         |   2 +-
 .../transport/matchers/NESSpamCheckTest.java    |   2 +-
 .../transport/matchers/RelayLimitTest.java      |  16 +-
 .../matchers/SMTPIsAuthNetworkTest.java         |   2 +-
 .../transport/matchers/SizeGreaterThanTest.java |   2 +-
 .../impl/matchers/BaseMatchersTest.java         |   2 +-
 .../james/transport/mailets/BounceTest.java     |   2 +-
 .../mailets/RecipientRewriteTableTest.java      |  32 ++-
 .../transport/mailets/RecordingMailContext.java | 120 +++++++++-
 .../mailets/delivery/SieveMailetTest.java       |  33 +--
 .../mailets/delivery/ToRecipientFolderTest.java |   2 +-
 .../managesieve/ManageSieveMailetTestCase.java  |   2 +-
 .../AbstractRemoteAddrInNetworkTest.java        |  10 +-
 .../matchers/InSpammerBlacklistTest.java        |   9 +-
 43 files changed, 679 insertions(+), 272 deletions(-)
----------------------------------------------------------------------



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


[4/6] james-project git commit: MAILET-99 Cover LogMessage with tests

Posted by ro...@apache.org.
MAILET-99 Cover LogMessage 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/38ba938d
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/38ba938d
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/38ba938d

Branch: refs/heads/master
Commit: 38ba938dd43457ea87c9744122083e0c7eed909a
Parents: a24824e
Author: Antoine Duprat <ad...@linagora.com>
Authored: Thu Aug 25 14:46:08 2016 +0200
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Aug 29 14:54:33 2016 +0200

----------------------------------------------------------------------
 mailet/base/pom.xml                             |  23 +-
 .../mailet/base/test/FakeMailContext.java       |  37 +++-
 mailet/pom.xml                                  |   6 +
 mailet/standard/pom.xml                         |   5 +
 .../james/transport/mailets/LogMessage.java     |  27 +--
 .../james/transport/mailets/LogMessageTest.java | 214 +++++++++++++++++++
 6 files changed, 283 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/38ba938d/mailet/base/pom.xml
----------------------------------------------------------------------
diff --git a/mailet/base/pom.xml b/mailet/base/pom.xml
index 7e6b978..38bf3da 100644
--- a/mailet/base/pom.xml
+++ b/mailet/base/pom.xml
@@ -41,16 +41,26 @@
 
     <dependencies>
         <dependency>
-            <groupId>javax.mail</groupId>
-            <artifactId>mail</artifactId>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mailet-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>javax.activation</groupId>
             <artifactId>activation</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.james</groupId>
-            <artifactId>apache-mailet-api</artifactId>
+            <groupId>javax.mail</groupId>
+            <artifactId>mail</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.james</groupId>
@@ -70,6 +80,11 @@
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>

http://git-wip-us.apache.org/repos/asf/james-project/blob/38ba938d/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java
index 7c9dc5f..516dc62 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java
@@ -35,9 +35,11 @@ import org.apache.mailet.LookupException;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetContext;
+import org.slf4j.Logger;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
+import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
@@ -55,8 +57,15 @@ public class FakeMailContext implements MailetContext {
 
     public static class Builder {
 
+        private Logger logger;
+
+        public Builder logger(Logger logger) {
+            this.logger = logger;
+            return this;
+        }
+
         public FakeMailContext build() {
-            return new FakeMailContext();
+            return new FakeMailContext(Optional.fromNullable(logger));
         }
     }
 
@@ -120,10 +129,12 @@ public class FakeMailContext implements MailetContext {
 
     private final HashMap<String, Object> attributes;
     private final List<SentMail> sentMails;
+    private final Optional<Logger> logger;
 
-    private FakeMailContext() {
+    private FakeMailContext(Optional<Logger> logger) {
         attributes = new HashMap<String, Object>();
         sentMails = new ArrayList<SentMail>();
+        this.logger = logger;
     }
 
     public void bounce(Mail mail, String message) throws MessagingException {
@@ -244,12 +255,28 @@ public class FakeMailContext implements MailetContext {
     }
 
     public void log(LogLevel level, String message) {
-        System.out.println("[" + level + "]" + message);
+        if (logger.isPresent()) {
+            switch (level) {
+            case INFO:
+                logger.get().info(message);
+                break;
+            case WARN:
+                logger.get().warn(message);
+                break;
+            case ERROR:
+                logger.get().error(message);
+                break;
+            default:
+                logger.get().debug(message);
+            }
+        } else {
+            System.out.println("[" + level + "]" + message);
+        }
     }
 
     public void log(LogLevel level, String message, Throwable t) {
-        System.out.println("[" + level + "]" + message);
-        t.printStackTrace(System.out);
+        log(level, message);
+        log(level, t.getMessage());
     }
 
     public List<String> dnsLookup(String name, RecordType type) throws LookupException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/38ba938d/mailet/pom.xml
----------------------------------------------------------------------
diff --git a/mailet/pom.xml b/mailet/pom.xml
index 8639392..f1ac89e 100644
--- a/mailet/pom.xml
+++ b/mailet/pom.xml
@@ -55,6 +55,7 @@
         <maven-reporting-api.version>3.0</maven-reporting-api.version>
         <qdox.version>1.12.1</qdox.version>
         <assertj-1.version>1.7.1</assertj-1.version>
+        <slf4j.version>1.7.7</slf4j.version>
     </properties>
 
 
@@ -161,6 +162,11 @@
                 <artifactId>mockito-core</artifactId>
                 <version>1.9.5</version>
             </dependency>
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-api</artifactId>
+                <version>${slf4j.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/38ba938d/mailet/standard/pom.xml
----------------------------------------------------------------------
diff --git a/mailet/standard/pom.xml b/mailet/standard/pom.xml
index 5b9f776..815727d 100644
--- a/mailet/standard/pom.xml
+++ b/mailet/standard/pom.xml
@@ -87,6 +87,11 @@
             <scope>test</scope>
             <version>1.9.5</version>
         </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>

http://git-wip-us.apache.org/repos/asf/james-project/blob/38ba938d/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
index c6f6914..ba3a35d 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
@@ -21,15 +21,14 @@
 
 package org.apache.james.transport.mailets;
 
+import java.io.InputStream;
 import java.util.Enumeration;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
-import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.Mail;
-
-import java.io.InputStream;
+import org.apache.mailet.base.GenericMailet;
 
 /**
  * Logs Message Headers and/or Body.
@@ -50,9 +49,6 @@ public class LogMessage extends GenericMailet {
     private int bodyMax = 0;
     private String comment = null;
 
-    /**
-     * Initialize the mailet, loading configuration information.
-     */
     public void init() {
         try {
             passThrough = (getInitParameter("passThrough") == null) ? true : Boolean.valueOf(getInitParameter("passThrough"));
@@ -65,11 +61,11 @@ public class LogMessage extends GenericMailet {
         }
     }
 
-    /**
-     * Log a particular message
-     *
-     * @param mail the mail to process
-     */
+    @Override
+    public String getMailetInfo() {
+        return "LogHeaders Mailet";
+    }
+
     public void service(Mail mail) {
         log("Logging mail " + mail.getName());
         if (comment != null) log(comment);
@@ -113,13 +109,4 @@ public class LogMessage extends GenericMailet {
         }
         return headBuffer.toString();
     }
-
-    /**
-     * Return a string describing this mailet.
-     *
-     * @return a string describing this mailet
-     */
-    public String getMailetInfo() {
-        return "LogHeaders Mailet";
-    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/38ba938d/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
new file mode 100644
index 0000000..df3cad8
--- /dev/null
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
@@ -0,0 +1,214 @@
+/****************************************************************
+ * 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.mailets;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import java.io.ByteArrayInputStream;
+import java.util.Properties;
+
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.internet.AddressException;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.mailet.Mail;
+import org.apache.mailet.MailAddress;
+import org.apache.mailet.base.test.FakeMail;
+import org.apache.mailet.base.test.FakeMailContext;
+import org.apache.mailet.base.test.FakeMailetConfig;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.slf4j.Logger;
+
+import com.google.common.base.Charsets;
+import com.google.common.collect.Lists;
+
+public class LogMessageTest {
+
+    @Rule
+    public ExpectedException expectedException = ExpectedException.none();
+
+    private LogMessage mailet;
+    private FakeMailetConfig mailetConfig;
+    private Logger logger;
+
+    @Before
+    public void setup() {
+        logger = mock(Logger.class);
+        FakeMailContext mailContext = FakeMailContext.builder()
+                .logger(logger)
+                .build();
+        mailetConfig = new FakeMailetConfig("LogContext", mailContext);
+        mailet = new LogMessage();
+    }
+
+    @Test
+    public void getMailetInfoShouldReturnValue() {
+        assertThat(mailet.getMailetInfo()).isEqualTo("LogHeaders Mailet");
+    }
+
+    @Test
+    public void initShouldIgnoreExceptions() throws Exception {
+        mailetConfig.setProperty("maxBody", "comment");
+        mailet.init(mailetConfig);
+    }
+
+    @Test
+    public void serviceShouldFailWhenMailHasNoStream() throws Exception {
+        mailet.init(mailetConfig);
+        expectedException.expect(NegativeArraySizeException.class);
+
+        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        message.setSubject("subject");
+        message.setText("This is a fake mail");
+        mailet.service(new FakeMail(message));
+    }
+
+    @Test
+    public void serviceShouldLog() throws Exception {
+        mailet.init(mailetConfig);
+
+        mailet.service(createMail());
+
+        verify(logger).info("Logging mail name");
+        verify(logger).info("\n" +
+                "Subject: subject\n" +
+                "Content-Type: text/plain\n");
+        verify(logger).info("This is a fake mail");
+        verifyNoMoreInteractions(logger);
+    }
+
+    @Test
+    public void serviceShouldLogWhenExceptionOccured() throws Exception {
+        mailet.init(mailetConfig);
+
+        Mail mail = mock(Mail.class);
+        when(mail.getName())
+            .thenReturn("name");
+        MessagingException messagingException = new MessagingException("exception message");
+        when(mail.getMessage())
+            .thenThrow(messagingException);
+
+        mailet.service(mail);
+
+        verify(logger).info("Logging mail name");
+        verify(logger).error("Error logging message.");
+        verify(logger).error("exception message");
+        verifyNoMoreInteractions(logger);
+    }
+
+    @Test
+    public void serviceShouldSetTheMailStateWhenPassThroughIsFalse() throws Exception {
+        mailetConfig.setProperty("passThrough", "false");
+        mailet.init(mailetConfig);
+
+        FakeMail mail = createMail();
+        mailet.service(mail);
+
+        assertThat(mail.getState()).isEqualTo(Mail.GHOST);
+    }
+
+    @Test
+    public void serviceShouldNotChangeTheMailStateWhenPassThroughIsTrue() throws Exception {
+        mailetConfig.setProperty("passThrough", "true");
+        mailet.init(mailetConfig);
+
+        FakeMail mail = createMail();
+        String initialState = mail.getState();
+        mailet.service(mail);
+
+        assertThat(mail.getState()).isEqualTo(initialState);
+    }
+
+    @Test
+    public void serviceShouldNotLogHeadersWhenFalse() throws Exception {
+        mailetConfig.setProperty("headers", "false");
+        mailet.init(mailetConfig);
+
+        mailet.service(createMail());
+
+        verify(logger).info("Logging mail name");
+        verify(logger).info("This is a fake mail");
+        verifyNoMoreInteractions(logger);
+    }
+
+    @Test
+    public void serviceShouldNotLogBodyWhenFalse() throws Exception {
+        mailetConfig.setProperty("body", "false");
+        mailet.init(mailetConfig);
+
+        mailet.service(createMail());
+
+        verify(logger).info("Logging mail name");
+        verify(logger).info("\n" +
+                "Subject: subject\n" +
+                "Content-Type: text/plain\n");
+        verifyNoMoreInteractions(logger);
+    }
+
+    @Test
+    public void serviceShouldNotLogFullBodyWhenBodyMaxIsSet() throws Exception {
+        mailetConfig.setProperty("maxBody", "2");
+        mailet.init(mailetConfig);
+
+        mailet.service(createMail());
+
+        verify(logger).info("Logging mail name");
+        verify(logger).info("\n" +
+                "Subject: subject\n" +
+                "Content-Type: text/plain\n");
+        verify(logger).info("Th");
+        verifyNoMoreInteractions(logger);
+    }
+
+    @Test
+    public void serviceShouldLogAdditionalCommentWhenCommentIsSet() throws Exception {
+        mailetConfig.setProperty("comment", "comment");
+        mailet.init(mailetConfig);
+
+        mailet.service(createMail());
+
+        verify(logger).info("Logging mail name");
+        verify(logger).info("comment");
+        verify(logger).info("\n" +
+                "Subject: subject\n" +
+                "Content-Type: text/plain\n");
+        verify(logger).info("This is a fake mail");
+        verifyNoMoreInteractions(logger);
+    }
+
+    private FakeMail createMail() throws MessagingException, AddressException {
+        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()),
+                new ByteArrayInputStream("Subject: subject\r\nContent-Type: text/plain\r\n\r\nThis is a fake mail".getBytes(Charsets.UTF_8)));
+        FakeMail mail = new FakeMail(message);
+        mail.setName("name");
+        mail.setState(Mail.DEFAULT);
+        mail.setRecipients(Lists.newArrayList(new MailAddress("receiver@domain.com")));
+        mail.setSender(new MailAddress("sender@any.com"));
+        return mail;
+    }
+}


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


[5/6] james-project git commit: MAILET-99 Refactor LogMessage

Posted by ro...@apache.org.
MAILET-99 Refactor LogMessage


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

Branch: refs/heads/master
Commit: 08eb7ec6d41da8aa9e34e421110faea1cfeead31
Parents: 00ce982
Author: Antoine Duprat <ad...@linagora.com>
Authored: Thu Aug 25 16:02:02 2016 +0200
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Aug 29 14:54:34 2016 +0200

----------------------------------------------------------------------
 .../james/transport/mailets/LogMessage.java     | 74 +++++++++++---------
 .../james/transport/mailets/LogMessageTest.java | 32 +++++----
 2 files changed, 59 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/08eb7ec6/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
index ba3a35d..c1c065f 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
@@ -21,15 +21,20 @@
 
 package org.apache.james.transport.mailets;
 
+import java.io.IOException;
 import java.io.InputStream;
+import java.util.Collections;
 import java.util.Enumeration;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
 
+import com.google.common.io.ByteStreams;
+
 /**
  * Logs Message Headers and/or Body.
  * If the "passThrough" in confs is true the mail will be left untouched in
@@ -49,15 +54,15 @@ public class LogMessage extends GenericMailet {
     private int bodyMax = 0;
     private String comment = null;
 
+    @Override
     public void init() {
         try {
-            passThrough = (getInitParameter("passThrough") == null) ? true : Boolean.valueOf(getInitParameter("passThrough"));
-            headers = (getInitParameter("headers") == null) ? true : Boolean.valueOf(getInitParameter("headers"));
-            body = (getInitParameter("body") == null) ? true : Boolean.valueOf(getInitParameter("body"));
+            passThrough = getInitParameter("passThrough", true);
+            headers = getInitParameter("headers", true);
+            body = getInitParameter("body", true);
             bodyMax = (getInitParameter("maxBody") == null) ? 0 : Integer.parseInt(getInitParameter("maxBody"));
             comment = getInitParameter("comment");
         } catch (Exception e) {
-            // Ignore exception, default to true
         }
     }
 
@@ -66,27 +71,17 @@ public class LogMessage extends GenericMailet {
         return "LogHeaders Mailet";
     }
 
+    @Override
     public void service(Mail mail) {
         log("Logging mail " + mail.getName());
-        if (comment != null) log(comment);
+        logComment();
         try {
-            if (headers) log(getMessageHeaders(mail.getMessage()));
-            if (body) {
-                int len = bodyMax > 0 ? bodyMax : mail.getMessage().getSize();
-                StringBuilder text = new StringBuilder(len);
-                InputStream is = mail.getMessage().getRawInputStream();
-                byte[] buf = new byte[1024];
-                int read;
-                while (text.length() < len && (read = is.read(buf)) > -1) {
-                    text.append(new String(buf, 0, Math.min(read, len - text.length())));
-                }
-                log(text.toString());
-            }
-        }
-        catch (MessagingException e) {
+            MimeMessage message = mail.getMessage();
+            logHeaders(message);
+            logBody(message);
+        } catch (MessagingException e) {
             log("Error logging message.", e);
-        }
-        catch (java.io.IOException e) {
+        } catch (java.io.IOException e) {
             log("Error logging message.", e);
         }
         if (!passThrough) {
@@ -94,19 +89,30 @@ public class LogMessage extends GenericMailet {
         }
     }
 
-    /**
-     * Utility method for obtaining a string representation of a
-     * Message's headers
-     * 
-     * @param message
-     */
-    private String getMessageHeaders(MimeMessage message) throws MessagingException {
-        @SuppressWarnings("unchecked")
-        Enumeration<String> heads = message.getAllHeaderLines();
-        StringBuilder headBuffer = new StringBuilder(1024).append("\n");
-        while(heads.hasMoreElements()) {
-            headBuffer.append(heads.nextElement().toString()).append("\n");
+    private void logComment() {
+        if (comment != null) {
+            log(comment);
         }
-        return headBuffer.toString();
+    }
+
+    @SuppressWarnings("unchecked")
+    private void logHeaders(MimeMessage message) throws MessagingException {
+        if (headers) {
+            log("\n");
+            for (String header : Collections.list((Enumeration<String>) message.getAllHeaderLines())) {
+                log(header + "\n");
+            }
+        }
+    }
+
+    private void logBody(MimeMessage message) throws MessagingException, IOException {
+        if (body) {
+            InputStream inputStream = ByteStreams.limit(message.getRawInputStream(), lengthToLog(message));
+            log(IOUtils.toString(inputStream));
+        }
+    }
+
+    private int lengthToLog(MimeMessage message) throws MessagingException {
+        return bodyMax > 0 ? bodyMax : message.getSize();
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/08eb7ec6/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
index df3cad8..f26e3db 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
@@ -80,12 +80,18 @@ public class LogMessageTest {
     @Test
     public void serviceShouldFailWhenMailHasNoStream() throws Exception {
         mailet.init(mailetConfig);
-        expectedException.expect(NegativeArraySizeException.class);
 
         MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
         message.setSubject("subject");
         message.setText("This is a fake mail");
         mailet.service(new FakeMail(message));
+
+        verify(logger).info("Logging mail null");
+        verify(logger).info("\n");
+        verify(logger).info("Subject: subject\n");
+        verify(logger).error("Error logging message.");
+        verify(logger).error("No MimeMessage content");
+        verifyNoMoreInteractions(logger);
     }
 
     @Test
@@ -95,9 +101,9 @@ public class LogMessageTest {
         mailet.service(createMail());
 
         verify(logger).info("Logging mail name");
-        verify(logger).info("\n" +
-                "Subject: subject\n" +
-                "Content-Type: text/plain\n");
+        verify(logger).info("\n");
+        verify(logger).info("Subject: subject\n");
+        verify(logger).info("Content-Type: text/plain\n");
         verify(logger).info("This is a fake mail");
         verifyNoMoreInteractions(logger);
     }
@@ -164,9 +170,9 @@ public class LogMessageTest {
         mailet.service(createMail());
 
         verify(logger).info("Logging mail name");
-        verify(logger).info("\n" +
-                "Subject: subject\n" +
-                "Content-Type: text/plain\n");
+        verify(logger).info("\n");
+        verify(logger).info("Subject: subject\n");
+        verify(logger).info("Content-Type: text/plain\n");
         verifyNoMoreInteractions(logger);
     }
 
@@ -178,9 +184,9 @@ public class LogMessageTest {
         mailet.service(createMail());
 
         verify(logger).info("Logging mail name");
-        verify(logger).info("\n" +
-                "Subject: subject\n" +
-                "Content-Type: text/plain\n");
+        verify(logger).info("\n");
+        verify(logger).info("Subject: subject\n");
+        verify(logger).info("Content-Type: text/plain\n");
         verify(logger).info("Th");
         verifyNoMoreInteractions(logger);
     }
@@ -194,9 +200,9 @@ public class LogMessageTest {
 
         verify(logger).info("Logging mail name");
         verify(logger).info("comment");
-        verify(logger).info("\n" +
-                "Subject: subject\n" +
-                "Content-Type: text/plain\n");
+        verify(logger).info("\n");
+        verify(logger).info("Subject: subject\n");
+        verify(logger).info("Content-Type: text/plain\n");
         verify(logger).info("This is a fake mail");
         verifyNoMoreInteractions(logger);
     }


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


[3/6] james-project git commit: MAILET-99 Use assertj in MailetUtilTest

Posted by ro...@apache.org.
MAILET-99 Use assertj in MailetUtilTest


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

Branch: refs/heads/master
Commit: fc95390f747080d7d406678c37c4419b7212cb26
Parents: 38ba938
Author: Antoine Duprat <ad...@linagora.com>
Authored: Thu Aug 25 15:04:26 2016 +0200
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Aug 29 14:54:33 2016 +0200

----------------------------------------------------------------------
 .../org/apache/mailet/base/MailetUtilTest.java  | 66 +++++++++++---------
 1 file changed, 38 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/fc95390f/mailet/base/src/test/java/org/apache/mailet/base/MailetUtilTest.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/MailetUtilTest.java b/mailet/base/src/test/java/org/apache/mailet/base/MailetUtilTest.java
index 1063f51..fa3eaee 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/MailetUtilTest.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/MailetUtilTest.java
@@ -19,9 +19,9 @@
 
 package org.apache.mailet.base;
 
+import static org.assertj.core.api.Assertions.assertThat;
+
 import org.apache.mailet.base.test.FakeMailetConfig;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -37,41 +37,51 @@ public class MailetUtilTest {
     }
 
     @Test
-    public void testGetInitParameterParameterIsTrue() {
-        assertTrue(getParameterValued("true", true));
-        assertTrue(getParameterValued("true", false));
-        assertTrue(getParameterValued("TRUE", true));
-        assertTrue(getParameterValued("TRUE", false));
-        assertTrue(getParameterValued("trUE", true));
-        assertTrue(getParameterValued("trUE", false));
+    public void getInitParameterShouldReturnTrueWhenIsValueTrueLowerCase() {
+        assertThat(getParameterValued("true", false)).isTrue();
+    }
+
+    @Test
+    public void getInitParameterShouldReturnTrueWhenIsValueTrueUpperCase() {
+        assertThat(getParameterValued("TRUE", false)).isTrue();
+    }
+
+    @Test
+    public void getInitParameterShouldReturnTrueWhenIsValueTrueMixedCase() {
+        assertThat(getParameterValued("trUE", false)).isTrue();
+    }
+
+    @Test
+    public void getInitParameterShouldReturnFalseWhenIsValueFalseLowerCase() {
+        assertThat(getParameterValued("false", true)).isFalse();
+    }
+
+    @Test
+    public void getInitParameterShouldReturnFalseWhenIsValueFalseUpperCase() {
+        assertThat(getParameterValued("FALSE", true)).isFalse();
     }
 
     @Test
-    public void testGetInitParameterParameterIsFalse() {
-        assertFalse(getParameterValued("false", true));
-        assertFalse(getParameterValued("false", false));
-        assertFalse(getParameterValued("FALSE", true));
-        assertFalse(getParameterValued("FALSE", false));
-        assertFalse(getParameterValued("fALSe", true));
-        assertFalse(getParameterValued("fALSe", false));
+    public void getInitParameterShouldReturnFalseWhenIsValueFalseMixedCase() {
+        assertThat(getParameterValued("fALSe", true)).isFalse();
     }
 
     @Test
-    public void testGetInitParameterParameterDefaultsToTrue() {
-        assertTrue(getParameterValued("fals", true));
-        assertTrue(getParameterValued("TRU", true));
-        assertTrue(getParameterValued("FALSEest", true));
-        assertTrue(getParameterValued("", true));
-        assertTrue(getParameterValued("gubbins", true));
+    public void getInitParameterShouldReturnDefaultValueAsTrueWhenBadValue() {
+        assertThat(getParameterValued("fals", true)).isTrue();
+        assertThat(getParameterValued("TRU", true)).isTrue();
+        assertThat(getParameterValued("FALSEest", true)).isTrue();
+        assertThat(getParameterValued("", true)).isTrue();
+        assertThat(getParameterValued("gubbins", true)).isTrue();
     }
 
     @Test
-    public void testGetInitParameterParameterDefaultsToFalse() {
-        assertFalse(getParameterValued("fals", false));
-        assertFalse(getParameterValued("TRU", false));
-        assertFalse(getParameterValued("FALSEest", false));
-        assertFalse(getParameterValued("", false));
-        assertFalse(getParameterValued("gubbins", false));
+    public void getInitParameterShouldReturnDefaultValueAsFalseWhenBadValue() {
+        assertThat(getParameterValued("fals", false)).isFalse();
+        assertThat(getParameterValued("TRU", false)).isFalse();
+        assertThat(getParameterValued("FALSEest", false)).isFalse();
+        assertThat(getParameterValued("", false)).isFalse();
+        assertThat(getParameterValued("gubbins", false)).isFalse();
     }
 
     private boolean getParameterValued(String value, boolean defaultValue) {


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