You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/08/28 05:48:36 UTC

[2/3] james-project git commit: JAMES-2530 Add an intermediate AppendInMailboxes action to better describe input

JAMES-2530 Add an intermediate AppendInMailboxes action to better describe input


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

Branch: refs/heads/master
Commit: d7b1caf3976a9d82cc822c44aad70dbe2160ff12
Parents: 4d8e807
Author: Benoit Tellier <bt...@linagora.com>
Authored: Mon Aug 27 17:16:58 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Aug 28 12:48:15 2018 +0700

----------------------------------------------------------------------
 .../james/jmap/cassandra/filtering/RuleDTO.java |  4 +-
 .../apache/james/jmap/api/filtering/Rule.java   | 77 +++++++++++++++-----
 .../james/jmap/api/filtering/RuleFixture.java   | 10 +--
 .../james/jmap/api/filtering/RuleTest.java      | 16 ++--
 4 files changed, 75 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d7b1caf3/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/filtering/RuleDTO.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/filtering/RuleDTO.java b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/filtering/RuleDTO.java
index c72eb39..02c3fae 100644
--- a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/filtering/RuleDTO.java
+++ b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/filtering/RuleDTO.java
@@ -52,7 +52,7 @@ public class RuleDTO {
                 rule.getCondition().getField().asString(),
                 rule.getCondition().getComparator().asString(),
                 rule.getCondition().getValue(),
-                rule.getAction().getMailboxIds());
+                rule.getAction().getAppendInMailboxes().getMailboxIds());
     }
 
     private final String id;
@@ -112,7 +112,7 @@ public class RuleDTO {
                 Rule.Condition.Comparator.of(comparator),
                 value))
             .name(name)
-            .action(Rule.Action.ofMailboxIds(mailboxIds))
+            .action(Rule.Action.of(Rule.Action.AppendInMailboxes.withMailboxIds(mailboxIds)))
             .build();
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d7b1caf3/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/Rule.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/Rule.java b/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/Rule.java
index 0da600d..8b4ae67 100644
--- a/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/Rule.java
+++ b/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/Rule.java
@@ -35,8 +35,8 @@ public class Rule {
     public static class Id {
 
         public static Id of(String id) {
-            Preconditions.checkNotNull(id, "id should no be null");
-            Preconditions.checkArgument(StringUtils.isNotBlank(id), "id should no be empty");
+            Preconditions.checkNotNull(id, "id should not be null");
+            Preconditions.checkArgument(StringUtils.isNotBlank(id), "id should not be empty");
             return new Id(id);
         }
 
@@ -130,10 +130,10 @@ public class Rule {
         }
 
         public static Condition of(Field field, Comparator comparator, String value) {
-            Preconditions.checkNotNull(field, "field should no be null");
-            Preconditions.checkNotNull(comparator, "comparator should no be null");
-            Preconditions.checkNotNull(value, "value should no be null");
-            Preconditions.checkArgument(StringUtils.isNotBlank(value), "value should no be empty");
+            Preconditions.checkNotNull(field, "field should not be null");
+            Preconditions.checkNotNull(comparator, "comparator should not be null");
+            Preconditions.checkNotNull(value, "value should not be null");
+            Preconditions.checkArgument(StringUtils.isNotBlank(value), "value should not be empty");
             return new Condition(field, comparator, value);
         }
 
@@ -185,46 +185,83 @@ public class Rule {
         }
     }
 
-
     public static class Action {
 
-        public static Action ofMailboxIds(List<String> mailboxIds) {
-            Preconditions.checkNotNull(mailboxIds, "mailboxIds should no be null");
-            return new Action(mailboxIds);
+        public static class AppendInMailboxes {
+
+            public static AppendInMailboxes withMailboxIds(List<String> mailboxIds) {
+                Preconditions.checkNotNull(mailboxIds, "mailboxIds should not be null");
+                return new AppendInMailboxes(mailboxIds);
+            }
+
+            public static AppendInMailboxes withMailboxIds(String... mailboxIds) {
+                return withMailboxIds(Arrays.asList(mailboxIds));
+            }
+
+            private final ImmutableList<String> mailboxIds;
+
+            private AppendInMailboxes(List<String> mailboxIds) {
+                this.mailboxIds = ImmutableList.copyOf(mailboxIds);
+            }
+
+            public ImmutableList<String> getMailboxIds() {
+                return mailboxIds;
+            }
+
+            @Override
+            public final boolean equals(Object o) {
+                if (o instanceof AppendInMailboxes) {
+                    AppendInMailboxes appendInMailboxes = (AppendInMailboxes) o;
+                    return Objects.equals(mailboxIds, appendInMailboxes.mailboxIds);
+                }
+                return false;
+            }
+
+            @Override
+            public final int hashCode() {
+                return Objects.hash(mailboxIds);
+            }
+
+            @Override
+            public String toString() {
+                return MoreObjects.toStringHelper(this)
+                        .add("mailboxIds", mailboxIds)
+                        .toString();
+            }
         }
 
-        public static Action ofMailboxIds(String... mailboxIds) {
-            return ofMailboxIds(Arrays.asList(mailboxIds));
+        public static Action of(AppendInMailboxes appendInMailboxes) {
+            return new Action(appendInMailboxes);
         }
 
-        private final ImmutableList<String> mailboxIds;
+        private final AppendInMailboxes appendInMailboxes;
 
-        private Action(List<String> mailboxIds) {
-            this.mailboxIds = ImmutableList.copyOf(mailboxIds);
+        private Action(AppendInMailboxes appendInMailboxes) {
+            this.appendInMailboxes = appendInMailboxes;
         }
         
-        public ImmutableList<String> getMailboxIds() {
-            return mailboxIds;
+        public AppendInMailboxes getAppendInMailboxes() {
+            return appendInMailboxes;
         }
 
         @Override
         public final boolean equals(Object o) {
             if (o instanceof Action) {
                 Action action = (Action) o;
-                return Objects.equals(mailboxIds, action.mailboxIds);
+                return Objects.equals(appendInMailboxes, action.appendInMailboxes);
             }
             return false;
         }
 
         @Override
         public final int hashCode() {
-            return Objects.hash(mailboxIds);
+            return Objects.hash(appendInMailboxes);
         }
 
         @Override
         public String toString() {
             return MoreObjects.toStringHelper(this)
-                .add("mailboxIds", mailboxIds)
+                .add("appendInMailboxes", appendInMailboxes)
                 .toString();
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/d7b1caf3/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/RuleFixture.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/RuleFixture.java b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/RuleFixture.java
index 5d17d03..96d31ea 100644
--- a/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/RuleFixture.java
+++ b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/RuleFixture.java
@@ -22,7 +22,7 @@ package org.apache.james.jmap.api.filtering;
 public interface RuleFixture {
     String NAME = "a name";
     Rule.Condition CONDITION = Rule.Condition.of(Rule.Condition.Field.CC, Rule.Condition.Comparator.CONTAINS, "something");
-    Rule.Action ACTION = Rule.Action.ofMailboxIds("id-01");
+    Rule.Action ACTION = Rule.Action.of(Rule.Action.AppendInMailboxes.withMailboxIds("id-01"));
     Rule.Builder RULE_BUILER = Rule.builder().name(NAME).condition(CONDITION).action(ACTION);
     Rule RULE_1 = RULE_BUILER.id(Rule.Id.of("1")).build();
     Rule RULE_2 = RULE_BUILER.id(Rule.Id.of("2")).build();
@@ -31,7 +31,7 @@ public interface RuleFixture {
     Rule RULE_TO = Rule.builder()
             .id(Rule.Id.of("id-to"))
             .name(NAME)
-            .action(Rule.Action.ofMailboxIds("mbx1"))
+            .action(Rule.Action.of(Rule.Action.AppendInMailboxes.withMailboxIds("mbx1")))
             .condition(Rule.Condition.of(
                     Rule.Condition.Field.TO,
                     Rule.Condition.Comparator.EXACTLY_EQUALS,
@@ -41,7 +41,7 @@ public interface RuleFixture {
     Rule RULE_SUBJECT = Rule.builder()
             .id(Rule.Id.of("id-subject"))
             .name(NAME)
-            .action(Rule.Action.ofMailboxIds("mbx1"))
+            .action(Rule.Action.of(Rule.Action.AppendInMailboxes.withMailboxIds("mbx1")))
             .condition(Rule.Condition.of(
                     Rule.Condition.Field.SUBJECT,
                     Rule.Condition.Comparator.NOT_CONTAINS,
@@ -51,7 +51,7 @@ public interface RuleFixture {
     Rule RULE_RECIPIENT = Rule.builder()
             .id(Rule.Id.of("id-rcpt"))
             .name(NAME)
-            .action(Rule.Action.ofMailboxIds("mbx1"))
+            .action(Rule.Action.of(Rule.Action.AppendInMailboxes.withMailboxIds("mbx1")))
             .condition(Rule.Condition.of(
                     Rule.Condition.Field.RECIPIENT,
                     Rule.Condition.Comparator.NOT_EXACTLY_EQUALS,
@@ -61,7 +61,7 @@ public interface RuleFixture {
     Rule RULE_FROM = Rule.builder()
             .id(Rule.Id.of("id-from"))
             .name(NAME)
-            .action(Rule.Action.ofMailboxIds("mbx1"))
+            .action(Rule.Action.of(Rule.Action.AppendInMailboxes.withMailboxIds("mbx1")))
             .condition(Rule.Condition.of(
                     Rule.Condition.Field.FROM,
                     Rule.Condition.Comparator.CONTAINS,

http://git-wip-us.apache.org/repos/asf/james-project/blob/d7b1caf3/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/RuleTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/RuleTest.java b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/RuleTest.java
index 2e3e760..c341f48 100644
--- a/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/RuleTest.java
+++ b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/RuleTest.java
@@ -29,15 +29,15 @@ import org.junit.jupiter.api.Test;
 
 import nl.jqno.equalsverifier.EqualsVerifier;
 
-public class RuleTest {
+class RuleTest {
 
     private static final List<String> ACTION_MAILBOXIDS = Arrays.asList("id-01");
     private static final String CONDITION_COMPARATOR = "contains";
     private static final String CONDITION_FIELD = "cc";
     private static final String NAME = "a name";
-    public static final Rule.Condition CONDITION = Rule.Condition.of(Rule.Condition.Field.of(CONDITION_FIELD), Rule.Condition.Comparator.of(CONDITION_COMPARATOR), "something");
-    public static final Rule.Action ACTION = Rule.Action.ofMailboxIds(ACTION_MAILBOXIDS);
-    public static final Rule.Id UNIQUE_ID = Rule.Id.of("uniqueId");
+    private static final Rule.Condition CONDITION = Rule.Condition.of(Rule.Condition.Field.of(CONDITION_FIELD), Rule.Condition.Comparator.of(CONDITION_COMPARATOR), "something");
+    private static final Rule.Action ACTION = Rule.Action.of(Rule.Action.AppendInMailboxes.withMailboxIds(ACTION_MAILBOXIDS));
+    private static final Rule.Id UNIQUE_ID = Rule.Id.of("uniqueId");
 
     @Test
     void shouldMatchBeanContract() {
@@ -64,6 +64,12 @@ public class RuleTest {
     }
 
     @Test
+    void innerClassAppendInMailboxesShouldMatchBeanContract() {
+        EqualsVerifier.forClass(Rule.Action.AppendInMailboxes.class)
+            .verify();
+    }
+
+    @Test
     void idShouldThrowOnNull() {
         assertThatThrownBy(() -> Rule.Id.of(null)).isInstanceOf(NullPointerException.class);
     }
@@ -158,7 +164,7 @@ public class RuleTest {
 
     @Test
     void buildActionShouldConserveMailboxIdsList() {
-        assertThat(ACTION.getMailboxIds()).isEqualTo(ACTION_MAILBOXIDS);
+        assertThat(ACTION.getAppendInMailboxes().getMailboxIds()).isEqualTo(ACTION_MAILBOXIDS);
     }
 
 }


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