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


JAMES-1836 Emailer should be buildable from James source code without 
constraints


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

Branch: refs/heads/master
Commit: b512797e77cb55a17a7eb4425dda12ec9df24446
Parents: 96aee2c
Author: Benoit Tellier <btell...@linagora.com>
Authored: Mon Oct 17 17:26:47 2016 +0200
Committer: Benoit Tellier <btell...@linagora.com>
Committed: Mon Oct 17 17:26:47 2016 +0200

----------------------------------------------------------------------
 .../org/apache/james/jmap/model/Emailer.java    | 15 +++++++
 .../apache/james/jmap/model/EmailerTest.java    | 46 ++++++++++++++++++++
 2 files changed, 61 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b512797e/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 906a841..9759046 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
@@ -20,7 +20,9 @@
 package org.apache.james.jmap.model;
 
 import java.util.Objects;
+import java.util.Optional;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
 import com.google.common.annotations.VisibleForTesting;
@@ -31,6 +33,8 @@ import com.google.common.base.Strings;
 @JsonDeserialize(builder = Emailer.Builder.class)
 public class Emailer {
 
+    public static String INVALID = "invalid";
+
     public static Builder builder() {
         return new Builder();
     }
@@ -56,6 +60,17 @@ public class Emailer {
             Preconditions.checkState(email.contains("@"), "'email' must 
contain '@' character");
             return new Emailer(name, email);
         }
+
+        @JsonIgnore
+        public Emailer buildInvalidAllowed() {
+            return new Emailer(replaceIfNeeded(name), replaceIfNeeded(email));
+        }
+
+        private String replaceIfNeeded(String value) {
+            return Optional.ofNullable(value)
+                .filter(s -> !s.equals(""))
+                .orElse(INVALID);
+        }
     }
 
     private final String name;

http://git-wip-us.apache.org/repos/asf/james-project/blob/b512797e/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 e45c3f1..1c26ea4 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
@@ -59,4 +59,50 @@ public class EmailerTest {
         assertThat(emailer).isEqualToComparingFieldByField(expected);
     }
 
+    @Test
+    public void buildInvalidAllowedShouldConsiderNullValuesAsInvalid() {
+        Emailer expected = new Emailer("invalid", "invalid");
+
+        Emailer actual = Emailer.builder()
+            .buildInvalidAllowed();
+
+        assertThat(actual).isEqualToComparingFieldByField(expected);
+    }
+
+    @Test
+    public void buildInvalidAllowedShouldConsiderEmptyValuesAsInvalid() {
+        Emailer expected = new Emailer("invalid", "invalid");
+
+        Emailer actual = Emailer.builder()
+            .name("")
+            .email("")
+            .buildInvalidAllowed();
+
+        assertThat(actual).isEqualToComparingFieldByField(expected);
+    }
+
+    @Test
+    public void buildInvalidAllowedShouldDeclareInvalidAddressesAsInvalid() {
+        Emailer expected = new Emailer("invalid", "invalidAddress");
+
+        Emailer actual = Emailer.builder()
+            .email("invalidAddress")
+            .buildInvalidAllowed();
+
+        assertThat(actual).isEqualToComparingFieldByField(expected);
+    }
+
+    @Test
+    public void buildInvalidAllowedShouldWork() {
+        String name = "bob";
+        String address = "m...@apache.org";
+        Emailer expected = new Emailer(name, address);
+
+        Emailer actual = Emailer.builder()
+            .name(name)
+            .email(address)
+            .buildInvalidAllowed();
+
+        assertThat(actual).isEqualToComparingFieldByField(expected);
+    }
 }


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