JAMES-1589 Add default domain when missing

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

Branch: refs/heads/master
Commit: 2bbfdcfbafe7efb3bfb6321581624dae3b1a68ca
Parents: 975fcf1
Author: benwa <btell...@linagora.com>
Authored: Fri Jul 28 15:09:26 2017 +0700
Committer: benwa <btell...@linagora.com>
Committed: Tue Aug 8 17:08:50 2017 +0700

----------------------------------------------------------------------
 .../james/domainlist/xml/XMLDomainListTest.java | 35 ++++++++++----------
 .../domainlist/lib/AbstractDomainList.java      |  2 +-
 .../AbstractDomainListPrivateMethodsTest.java   | 25 ++++++++++++++
 3 files changed, 43 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/2bbfdcfb/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java
 
b/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java
index 68e5363..d1b2d6b 100644
--- 
a/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java
+++ 
b/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java
@@ -32,6 +32,7 @@ import 
org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.api.mock.MockDNSService;
 import org.apache.james.domainlist.api.DomainListException;
+import org.apache.james.domainlist.lib.EnvDetector;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -39,6 +40,8 @@ import org.slf4j.LoggerFactory;
 
 public class XMLDomainListTest {
 
+    public static final String DEFAULT_DOMAIN = "default.domain";
+
     @Rule
     public ExpectedException expectedException = ExpectedException.none();
     
@@ -50,7 +53,7 @@ public class XMLDomainListTest {
         for (String name : names) {
             configuration.addProperty("domainnames.domainname", name);
         }
-        configuration.addProperty("defaultDomain", "default.domain");
+        configuration.addProperty("defaultDomain", DEFAULT_DOMAIN);
         return configuration;
     }
 
@@ -78,12 +81,11 @@ public class XMLDomainListTest {
     @Test
     public void testNoConfiguredDomains() throws Exception {
         List<String> domains = new ArrayList<String>();
-        XMLDomainList dom = new XMLDomainList();
+        XMLDomainList dom = new XMLDomainList(setUpDNSServer("localhost"), new 
EnvDetector());
         dom.setLog(LoggerFactory.getLogger("MockLog"));
         dom.configure(setUpConfiguration(false, false, domains));
-        dom.setDNSService(setUpDNSServer("localhost"));
 
-        assertThat(dom.getDomains()).describedAs("No domain found").isEmpty();
+        assertThat(dom.getDomains()).describedAs("No domain 
found").containsOnly(DEFAULT_DOMAIN);
     }
 
     @Test
@@ -92,12 +94,11 @@ public class XMLDomainListTest {
         domains.add("domain1.");
         domains.add("domain2.");
 
-        XMLDomainList dom = new XMLDomainList();
+        XMLDomainList dom = new XMLDomainList(setUpDNSServer("localhost"), new 
EnvDetector());
         dom.setLog(LoggerFactory.getLogger("MockLog"));
         dom.configure(setUpConfiguration(false, false, domains));
-        dom.setDNSService(setUpDNSServer("localhost"));
 
-        assertThat(dom.getDomains()).describedAs("Two domain 
found").hasSize(2);
+        assertThat(dom.getDomains()).describedAs("Three domain 
found").hasSize(3);
     }
 
     @Test
@@ -105,12 +106,11 @@ public class XMLDomainListTest {
         List<String> domains = new ArrayList<String>();
         domains.add("domain1.");
 
-        XMLDomainList dom = new XMLDomainList();
+        XMLDomainList dom = new XMLDomainList(setUpDNSServer("local"), new 
EnvDetector());
         dom.setLog(LoggerFactory.getLogger("MockLog"));
         dom.configure(setUpConfiguration(true, false, domains));
 
-        dom.setDNSService(setUpDNSServer("local"));
-        assertThat(dom.getDomains()).describedAs("Two domains 
found").hasSize(2);
+        assertThat(dom.getDomains()).describedAs("Two domains 
found").hasSize(3);
     }
 
     @Test
@@ -118,13 +118,12 @@ public class XMLDomainListTest {
         List<String> domains = new ArrayList<String>();
         domains.add("domain1.");
 
-        XMLDomainList dom = new XMLDomainList();
+        XMLDomainList dom = new XMLDomainList(setUpDNSServer("localhost"), new 
EnvDetector());
         dom.setLog(LoggerFactory.getLogger("MockLog"));
         dom.configure(setUpConfiguration(true, false, domains));
 
-        dom.setDNSService(setUpDNSServer("localhost"));
 
-        assertThat(dom.getDomains()).describedAs("One domain 
found").hasSize(1);
+        assertThat(dom.getDomains()).describedAs("One domain 
found").hasSize(2);
     }
 
     @Test
@@ -134,7 +133,7 @@ public class XMLDomainListTest {
         List<String> domains = new ArrayList<String>();
         domains.add("domain1");
 
-        XMLDomainList testee = new XMLDomainList();
+        XMLDomainList testee = new XMLDomainList(setUpDNSServer("hostname"), 
new EnvDetector());
         testee.setLog(LoggerFactory.getLogger("MockLog"));
         testee.configure(setUpConfiguration(true, false, domains));
 
@@ -148,7 +147,7 @@ public class XMLDomainListTest {
         List<String> domains = new ArrayList<String>();
         domains.add("domain1");
 
-        XMLDomainList testee = new XMLDomainList();
+        XMLDomainList testee = new XMLDomainList(setUpDNSServer("localhost"), 
new EnvDetector());
         testee.setLog(LoggerFactory.getLogger("MockLog"));
         testee.configure(setUpConfiguration(true, false, domains));
 
@@ -159,15 +158,15 @@ public class XMLDomainListTest {
     public void configureShouldNotFailWhenConfiguringDefaultDomain() throws 
Exception {
         DefaultConfigurationBuilder configuration = new 
DefaultConfigurationBuilder();
 
-        configuration.addProperty("autodetect", true);
+        configuration.addProperty("autodetect", false);
         configuration.addProperty("autodetectIP", false);
         configuration.addProperty("domainnames.domainname", "domain1");
         configuration.addProperty("defaultDomain", "localhost");
 
-        XMLDomainList testee = new XMLDomainList();
+        XMLDomainList testee = new XMLDomainList(setUpDNSServer("localhost"), 
new EnvDetector());
         testee.setLog(LoggerFactory.getLogger("MockLog"));
         testee.configure(configuration);
 
-        assertThat(testee.getDomainListInternal()).hasSize(2);
+        assertThat(testee.getDomainListInternal()).hasSize(3);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/2bbfdcfb/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
 
b/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
index 689d35c..d103a09 100644
--- 
a/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
+++ 
b/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
@@ -81,7 +81,7 @@ public abstract class AbstractDomainList implements 
DomainList, LogEnabled, Conf
     @VisibleForTesting void configureDefaultDomain(HierarchicalConfiguration 
config) throws ConfigurationException {
         
         try {
-            defaultDomain = config.getString("defaultDomain", LOCALHOST);
+            setDefaultDomain(config.getString("defaultDomain", LOCALHOST));
 
             String hostName = InetAddress.getLocalHost().getHostName();
             if (mayChangeDefaultDomain()) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/2bbfdcfb/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
 
b/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
index eb82d76..8dce3d8 100644
--- 
a/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
+++ 
b/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
@@ -119,4 +119,29 @@ public class AbstractDomainListPrivateMethodsTest {
 
         
assertThat(domainList.getDomainListInternal()).containsOnlyOnce(expectedDefaultDomain);
     }
+
+    @Test
+    public void setDefaultDomainShouldAddDomainWhenNotContained() throws 
Exception {
+        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
+        String expectedDefaultDomain = "myDomain.org";
+        when(configuration.getString("defaultDomain", 
AbstractDomainList.LOCALHOST))
+            .thenReturn(expectedDefaultDomain);
+
+        domainList.configureDefaultDomain(configuration);
+
+        
assertThat(domainList.getDomainListInternal()).contains(expectedDefaultDomain);
+    }
+
+    @Test
+    public void setDefaultDomainNotFailWhenDomainContained() throws Exception {
+        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
+        String expectedDefaultDomain = "myDomain.org";
+        when(configuration.getString("defaultDomain", 
AbstractDomainList.LOCALHOST))
+            .thenReturn(expectedDefaultDomain);
+
+        domainList.addDomain(expectedDefaultDomain);
+        domainList.configureDefaultDomain(configuration);
+
+        
assertThat(domainList.getDomainListInternal()).contains(expectedDefaultDomain);
+    }
 }


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

Reply via email to