JAMES-2513 Improve AbstractDomainListPrivateMethodsTest

 - Avoid using mocks. Prefer relying on the configuration POJO
 - Avoid throwing needless exceptions


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

Branch: refs/heads/master
Commit: 8daad381b28b95ad560f7ece08ab6bb3f7fd34d3
Parents: 5f45d49
Author: benwa <[email protected]>
Authored: Thu Aug 2 09:40:51 2018 +0700
Committer: Benoit Tellier <[email protected]>
Committed: Fri Aug 3 15:51:29 2018 +0700

----------------------------------------------------------------------
 .../domainlist/lib/AbstractDomainList.java      |   4 +
 .../domainlist/lib/DomainListConfiguration.java |   5 +
 .../AbstractDomainListPrivateMethodsTest.java   | 131 ++++++++-----------
 3 files changed, 62 insertions(+), 78 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/8daad381/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 e8fddd4..e27ed5e 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
@@ -86,6 +86,10 @@ public abstract class AbstractDomainList implements 
DomainList, Configurable {
         addEnvDomain();
         addConfiguredDomains(domainListConfiguration.getConfiguredDomains());
     }
+    
+    public void configure(DomainListConfiguration.Builder 
configurationBuilder) throws ConfigurationException {
+        configure(configurationBuilder.build());
+    }
 
     protected void addConfiguredDomains(List<Domain> domains) {
         domains.stream()

http://git-wip-us.apache.org/repos/asf/james-project/blob/8daad381/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/DomainListConfiguration.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/DomainListConfiguration.java
 
b/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/DomainListConfiguration.java
index 8302b3f..5930fbe 100644
--- 
a/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/DomainListConfiguration.java
+++ 
b/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/DomainListConfiguration.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.domainlist.lib;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Objects;
@@ -85,6 +86,10 @@ public class DomainListConfiguration {
             return this;
         }
 
+        public Builder addConfiguredDomains(Domain... domains) {
+            return this.addConfiguredDomains(Arrays.asList(domains));
+        }
+
         public DomainListConfiguration build() {
             return new DomainListConfiguration(
                 autoDetectIp.orElse(true),

http://git-wip-us.apache.org/repos/asf/james-project/blob/8daad381/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 787e3e8..4ecd689 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
@@ -25,14 +25,11 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verifyZeroInteractions;
 import static org.mockito.Mockito.when;
 
-import java.net.Inet4Address;
 import java.net.InetAddress;
 import java.util.List;
 
-import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.core.Domain;
 import org.apache.james.dnsservice.api.DNSService;
-import org.apache.james.domainlist.api.DomainListException;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -55,28 +52,28 @@ public class AbstractDomainListPrivateMethodsTest {
 
         private List<Domain> domains;
 
-        public MyDomainList(DNSService dns, EnvDetector envDetector) {
+        MyDomainList(DNSService dns, EnvDetector envDetector) {
             super(dns, envDetector);
             this.domains = Lists.newArrayList();
         }
 
         @Override
-        protected boolean containsDomainInternal(Domain domain) throws 
DomainListException {
+        protected boolean containsDomainInternal(Domain domain) {
             return domains.contains(domain);
         }
 
         @Override
-        public void addDomain(Domain domain) throws DomainListException {
+        public void addDomain(Domain domain) {
             domains.add(domain);
         }
 
         @Override
-        public void removeDomain(Domain domain) throws DomainListException {
+        public void removeDomain(Domain domain) {
             domains.remove(domain);
         }
 
         @Override
-        protected List<Domain> getDomainListInternal() throws 
DomainListException {
+        protected List<Domain> getDomainListInternal() {
             return domains;
         }
     }
@@ -136,24 +133,20 @@ public class AbstractDomainListPrivateMethodsTest {
 
     @Test
     public void getDomainsShouldNotDetectDomainsWhenDisabled() throws 
Exception {
-        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
+        Domain domain = Domain.of("domain.tld");
+        domainList.configure(DomainListConfiguration.builder()
+            .autoDetect(false)
+            .autoDetectIp(false)
+            .defaultDomain(domain));
 
-        when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, 
null)).thenReturn(false);
-        
when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, 
null)).thenReturn(false);
-        String domain = "domain.tld";
-        
when(configuration.getString(AbstractDomainList.CONFIGURE_DEFAULT_DOMAIN, 
null)).thenReturn(domain);
-        domainList.configure(configuration);
-
-        assertThat(domainList.getDomains()).containsOnly(Domain.of(domain));
+        assertThat(domainList.getDomains()).containsOnly(domain);
     }
 
     @Test
     public void getDomainsShouldNotInteractWithDNSWhenDisabled() throws 
Exception {
-        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
-
-        when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, 
true)).thenReturn(false);
-        
when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, 
true)).thenReturn(false);
-        domainList.configure(configuration);
+        domainList.configure(DomainListConfiguration.builder()
+            .autoDetect(false)
+            .autoDetectIp(false));
         domainList.getDomains();
 
         verifyZeroInteractions(dnsService);
@@ -161,11 +154,9 @@ public class AbstractDomainListPrivateMethodsTest {
 
     @Test
     public void getDomainsShouldContainDetectedDomains() throws Exception {
-        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
-
-        when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, 
null)).thenReturn(true);
-        
when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, 
null)).thenReturn(false);
-        domainList.configure(configuration);
+        domainList.configure(DomainListConfiguration.builder()
+            .autoDetect(true)
+            .autoDetectIp(false));
 
         String detected = "detected.tld";
         
when(dnsService.getLocalHost()).thenReturn(InetAddress.getByName("127.0.0.1"));
@@ -176,11 +167,9 @@ public class AbstractDomainListPrivateMethodsTest {
 
     @Test
     public void getDomainsShouldContainDetectedDomainsAndIps() throws 
Exception {
-        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
-
-        when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, 
null)).thenReturn(true);
-        
when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, 
null)).thenReturn(true);
-        domainList.configure(configuration);
+        domainList.configure(DomainListConfiguration.builder()
+            .autoDetect(true)
+            .autoDetectIp(true));
 
         String detected = "detected.tld";
         String detectedIp = "148.25.32.1";
@@ -195,11 +184,9 @@ public class AbstractDomainListPrivateMethodsTest {
 
     @Test
     public void getDomainsShouldContainDetectedDomainsAndIpsOfAddedDomains() 
throws Exception {
-        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
-
-        when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, 
null)).thenReturn(true);
-        
when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, 
null)).thenReturn(true);
-        domainList.configure(configuration);
+        domainList.configure(DomainListConfiguration.builder()
+            .autoDetect(true)
+            .autoDetectIp(true));
 
         String added = "added.tld";
         String detected = "detected.tld";
@@ -222,15 +209,15 @@ public class AbstractDomainListPrivateMethodsTest {
 
     @Test
     public void getDomainsShouldListAddedDomain() throws Exception {
-        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
-
         Domain defaultDomain = Domain.of("default.tld");
-        when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, 
null)).thenReturn(false);
-        
when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, 
null)).thenReturn(false);
-        
when(configuration.getString(AbstractDomainList.CONFIGURE_DEFAULT_DOMAIN, 
null)).thenReturn(defaultDomain.asString());
         Domain domain = Domain.of("added.tld");
+
         domainList.addDomain(domain);
-        domainList.configure(configuration);
+
+        domainList.configure(DomainListConfiguration.builder()
+            .autoDetect(false)
+            .autoDetectIp(false)
+            .defaultDomain(defaultDomain));
 
         assertThat(domainList.getDomains()).containsOnly(domain, 
defaultDomain);
     }
@@ -250,36 +237,31 @@ public class AbstractDomainListPrivateMethodsTest {
 
     @Test
     public void containsDomainShouldReturnTrueWhenDomainIsContained() throws 
Exception {
-        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
-
-        when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, 
true)).thenReturn(false);
-        
when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, 
true)).thenReturn(false);
         Domain domain = Domain.of("added.tld");
         domainList.addDomain(domain);
-        domainList.configure(configuration);
+        domainList.configure(DomainListConfiguration.builder()
+            .autoDetect(false)
+            .autoDetectIp(false));
 
         assertThat(domainList.containsDomain(domain)).isTrue();
     }
 
     @Test
     public void containsDomainShouldReturnFalseWhenDomainIsNotContained() 
throws Exception {
-        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
-
-        when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, 
true)).thenReturn(false);
-        
when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, 
true)).thenReturn(false);
         Domain domain = Domain.of("added.tld");
-        domainList.configure(configuration);
+
+        domainList.configure(DomainListConfiguration.builder()
+            .autoDetect(false)
+            .autoDetectIp(false));
 
         assertThat(domainList.containsDomain(domain)).isFalse();
     }
 
     @Test
     public void containsDomainShouldNotInteractWithDNSWhenDisabled() throws 
Exception {
-        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
-
-        when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, 
true)).thenReturn(false);
-        
when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, 
true)).thenReturn(false);
-        domainList.configure(configuration);
+        domainList.configure(DomainListConfiguration.builder()
+            .autoDetect(false)
+            .autoDetectIp(false));
         domainList.containsDomain(Domain.of("added.tld"));
 
         verifyZeroInteractions(dnsService);
@@ -287,11 +269,9 @@ public class AbstractDomainListPrivateMethodsTest {
 
     @Test
     public void containsDomainShouldReturnDetectedDomains() throws Exception {
-        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
-
-        when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, 
null)).thenReturn(true);
-        
when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, 
null)).thenReturn(false);
-        domainList.configure(configuration);
+        domainList.configure(DomainListConfiguration.builder()
+            .autoDetect(true)
+            .autoDetectIp(false));
 
         String detected = "detected.tld";
         
when(dnsService.getLocalHost()).thenReturn(InetAddress.getByName("127.0.0.1"));
@@ -305,30 +285,25 @@ public class AbstractDomainListPrivateMethodsTest {
         String envDomain = "env.tld";
         
when(envDetector.getEnv(AbstractDomainList.ENV_DOMAIN)).thenReturn(envDomain);
 
-        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
-        when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, 
true)).thenReturn(true);
-        
when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, 
true)).thenReturn(false);
-        domainList.configure(configuration);
+
+        domainList.configure(DomainListConfiguration.builder()
+            .autoDetect(true)
+            .autoDetectIp(false));
 
         assertThat(domainList.containsDomain(Domain.of(envDomain))).isTrue();
     }
 
     @Test
     public void configuredDomainShouldBeAddedUponConfiguration() throws 
Exception {
-        String domain1 = "conf1.tld";
-        String domain2 = "conf2.tld";
-        String[] configuredDomain = new String[] {domain1, domain2};
+        Domain domain1 = Domain.of("conf1.tld");
+        Domain domain2 = Domain.of("conf2.tld");
 
-        HierarchicalConfiguration configuration = 
mock(HierarchicalConfiguration.class);
-        when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, 
null)).thenReturn(true);
-        
when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, 
null)).thenReturn(false);
-        
when(configuration.getStringArray(AbstractDomainList.CONFIGURE_DOMAIN_NAMES)).thenReturn(configuredDomain);
-        domainList.configure(configuration);
+        domainList.configure(DomainListConfiguration.builder()
+            .autoDetect(false)
+            .autoDetectIp(false)
+            .addConfiguredDomains(domain1, domain2));
 
-        assertThat(domainList.getDomains())
-            .contains(
-                Domain.of(domain1),
-                Domain.of(domain2));
+        assertThat(domainList.getDomains()).contains(domain1, domain2);
     }
 
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to