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