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