Repository: james-project
Updated Branches:
  refs/heads/master 62be9cea4 -> 13497382d


JAMES-1836 Add allowInvalid as an option to Emailer.Builder and other requested 
fixes


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

Branch: refs/heads/master
Commit: bb695150e1e2fcf6996fbe1734a19a56e7fc2596
Parents: 62be9ce
Author: Benoit Tellier <btell...@linagora.com>
Authored: Tue Oct 18 14:21:18 2016 +0200
Committer: Benoit Tellier <btell...@linagora.com>
Committed: Wed Oct 19 09:58:01 2016 +0200

----------------------------------------------------------------------
 .../org/apache/james/jmap/model/Emailer.java    | 24 ++++++++++++++++----
 .../apache/james/jmap/model/MessageFactory.java |  3 ++-
 .../apache/james/jmap/model/EmailerTest.java    | 18 +++++++++------
 .../james/jmap/model/MessageFactoryTest.java    | 10 ++++----
 4 files changed, 38 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/bb695150/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Emailer.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Emailer.java 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Emailer.java
index 9759046..20e0c4c 100644
--- 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Emailer.java
+++ 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Emailer.java
@@ -33,7 +33,7 @@ import com.google.common.base.Strings;
 @JsonDeserialize(builder = Emailer.Builder.class)
 public class Emailer {
 
-    public static String INVALID = "invalid";
+    public static String INVALID = "";
 
     public static Builder builder() {
         return new Builder();
@@ -41,6 +41,9 @@ public class Emailer {
 
     @JsonPOJOBuilder(withPrefix = "")
     public static class Builder {
+        private static final boolean DEFAULT_DISABLE = false;
+
+        private Optional<Boolean> allowInvalid = Optional.empty();
         private String name;
         private String email;
 
@@ -54,21 +57,34 @@ public class Emailer {
             return this;
         }
 
+        @JsonIgnore
+        public Builder allowInvalid() {
+            this.allowInvalid = Optional.of(true);
+            return this;
+        }
+
         public Emailer build() {
+            if (allowInvalid.orElse(DEFAULT_DISABLE)) {
+                return buildRelaxed();
+            } else {
+                return buildStrict();
+            }
+        }
+
+        private Emailer buildStrict() {
             Preconditions.checkState(!Strings.isNullOrEmpty(name), "'name' is 
mandatory");
             Preconditions.checkState(!Strings.isNullOrEmpty(email), "'email' 
is mandatory");
             Preconditions.checkState(email.contains("@"), "'email' must 
contain '@' character");
             return new Emailer(name, email);
         }
 
-        @JsonIgnore
-        public Emailer buildInvalidAllowed() {
+        private Emailer buildRelaxed() {
             return new Emailer(replaceIfNeeded(name), replaceIfNeeded(email));
         }
 
         private String replaceIfNeeded(String value) {
             return Optional.ofNullable(value)
-                .filter(s -> !s.equals(""))
+                .filter(s -> !s.isEmpty())
                 .orElse(INVALID);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/bb695150/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
index e3e09e7..686b881 100644
--- 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
+++ 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
@@ -148,7 +148,8 @@ public class MessageFactory {
         return Emailer.builder()
             .name(getNameOrAddress(mailbox))
             .email(mailbox.getAddress())
-            .buildInvalidAllowed();
+            .allowInvalid()
+            .build();
     }
 
     private String getNameOrAddress(Mailbox mailbox) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/bb695150/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/EmailerTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/EmailerTest.java
 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/EmailerTest.java
index 1c26ea4..efe28f0 100644
--- 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/EmailerTest.java
+++ 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/EmailerTest.java
@@ -61,33 +61,36 @@ public class EmailerTest {
 
     @Test
     public void buildInvalidAllowedShouldConsiderNullValuesAsInvalid() {
-        Emailer expected = new Emailer("invalid", "invalid");
+        Emailer expected = new Emailer("", "");
 
         Emailer actual = Emailer.builder()
-            .buildInvalidAllowed();
+            .allowInvalid()
+            .build();
 
         assertThat(actual).isEqualToComparingFieldByField(expected);
     }
 
     @Test
     public void buildInvalidAllowedShouldConsiderEmptyValuesAsInvalid() {
-        Emailer expected = new Emailer("invalid", "invalid");
+        Emailer expected = new Emailer("", "");
 
         Emailer actual = Emailer.builder()
             .name("")
             .email("")
-            .buildInvalidAllowed();
+            .allowInvalid()
+            .build();
 
         assertThat(actual).isEqualToComparingFieldByField(expected);
     }
 
     @Test
     public void buildInvalidAllowedShouldDeclareInvalidAddressesAsInvalid() {
-        Emailer expected = new Emailer("invalid", "invalidAddress");
+        Emailer expected = new Emailer("", "invalidAddress");
 
         Emailer actual = Emailer.builder()
             .email("invalidAddress")
-            .buildInvalidAllowed();
+            .allowInvalid()
+            .build();
 
         assertThat(actual).isEqualToComparingFieldByField(expected);
     }
@@ -101,7 +104,8 @@ public class EmailerTest {
         Emailer actual = Emailer.builder()
             .name(name)
             .email(address)
-            .buildInvalidAllowed();
+            .allowInvalid()
+            .build();
 
         assertThat(actual).isEqualToComparingFieldByField(expected);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/bb695150/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java
 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java
index 0006a39..c9a7b26 100644
--- 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java
+++ 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java
@@ -281,11 +281,11 @@ public class MessageFactoryTest {
 
         Message testee = messageFactory.fromMetaDataWithContent(testMail);
 
-        Emailer user = 
Emailer.builder().name("user").email("userdomain").buildInvalidAllowed();
-        Emailer user1 = 
Emailer.builder().name("user1").email("user1domain").buildInvalidAllowed();
-        Emailer user2 = 
Emailer.builder().name("user2").email("user2domain").buildInvalidAllowed();
-        Emailer usercc = 
Emailer.builder().name("usercc").email("userccdomain").buildInvalidAllowed();
-        Emailer userbcc = 
Emailer.builder().name("userbcc").email("userbccdomain").buildInvalidAllowed();
+        Emailer user = 
Emailer.builder().name("user").email("userdomain").allowInvalid().build();
+        Emailer user1 = 
Emailer.builder().name("user1").email("user1domain").allowInvalid().build();
+        Emailer user2 = 
Emailer.builder().name("user2").email("user2domain").allowInvalid().build();
+        Emailer usercc = 
Emailer.builder().name("usercc").email("userccdomain").allowInvalid().build();
+        Emailer userbcc = 
Emailer.builder().name("userbcc").email("userbccdomain").allowInvalid().build();
 
         assertThat(testee.getFrom()).contains(user);
         assertThat(testee.getTo()).contains(user1, user2);


---------------------------------------------------------------------
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