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/01/05 09:17:37 UTC
[11/15] james-project git commit: JAMES-2255 Mailbox from JMAP should
use Number for number data
JAMES-2255 Mailbox from JMAP should use Number for number data
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/a8026023
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/a8026023
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/a8026023
Branch: refs/heads/master
Commit: a80260236ba83929dcbdab29df49fbaf145c3d85
Parents: a763b17
Author: quynhn <qn...@linagora.com>
Authored: Tue Dec 12 13:57:59 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jan 5 16:10:52 2018 +0700
----------------------------------------------------------------------
.../james/jmap/model/mailbox/Mailbox.java | 44 ++++++++++----------
.../jmap/methods/GetMailboxesMethodTest.java | 9 ++--
.../GetMailboxMessageListResponseTest.java | 3 +-
.../james/jmap/model/mailbox/MailboxTest.java | 23 ++++++----
4 files changed, 44 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/a8026023/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Mailbox.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Mailbox.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Mailbox.java
index 235f741..c910369 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Mailbox.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Mailbox.java
@@ -23,6 +23,7 @@ import java.util.Objects;
import java.util.Optional;
import org.apache.james.jmap.methods.JmapResponseWriterImpl;
+import org.apache.james.jmap.model.Number;
import org.apache.james.mailbox.model.MailboxId;
import com.fasterxml.jackson.annotation.JsonFilter;
@@ -57,10 +58,10 @@ public class Mailbox {
private boolean mayCreateChild;
private boolean mayRename;
private boolean mayDelete;
- private Optional<Long> totalMessages;
- private Optional<Long> unreadMessages;
- private long totalThreads;
- private long unreadThreads;
+ private Optional<Number> totalMessages;
+ private Optional<Number> unreadMessages;
+ private Optional<Number> totalThreads;
+ private Optional<Number> unreadThreads;
private Optional<Rights> sharedWith;
private Optional<MailboxNamespace> namespace;
@@ -70,6 +71,8 @@ public class Mailbox {
namespace = Optional.empty();
totalMessages = Optional.empty();
unreadMessages = Optional.empty();
+ totalThreads = Optional.empty();
+ unreadThreads = Optional.empty();
role = Optional.empty();
}
@@ -136,22 +139,22 @@ public class Mailbox {
}
public Builder totalMessages(long totalMessages) {
- this.totalMessages = Optional.of(totalMessages);
+ this.totalMessages = Optional.of(Number.fromOutboundLong(totalMessages));
return this;
}
public Builder unreadMessages(long unreadMessages) {
- this.unreadMessages = Optional.of(unreadMessages);
+ this.unreadMessages = Optional.of(Number.fromOutboundLong(unreadMessages));
return this;
}
public Builder totalThreads(long totalThreads) {
- this.totalThreads = totalThreads;
+ this.totalThreads = Optional.of(Number.fromOutboundLong(totalThreads));
return this;
}
public Builder unreadThreads(long unreadThreads) {
- this.unreadThreads = unreadThreads;
+ this.unreadThreads = Optional.of(Number.fromOutboundLong(unreadThreads));
return this;
}
@@ -170,12 +173,7 @@ public class Mailbox {
Preconditions.checkState(id != null, "'id' is mandatory");
return new Mailbox(id, name, parentId, role, sortOrder, mustBeOnlyMailbox, mayReadItems, mayAddItems, mayRemoveItems, mayCreateChild, mayRename, mayDelete,
- negativeToZero(totalMessages), negativeToZero(unreadMessages), totalThreads, unreadThreads, sharedWith.orElse(Rights.EMPTY), namespace.orElse(MailboxNamespace.personal()));
- }
-
- private long negativeToZero(Optional<Long> number) {
- return number.filter(value -> value >= 0)
- .orElse(0L);
+ totalMessages.orElse(Number.ZERO), unreadMessages.orElse(Number.ZERO), totalThreads.orElse(Number.ZERO), unreadThreads.orElse(Number.ZERO), sharedWith.orElse(Rights.EMPTY), namespace.orElse(MailboxNamespace.personal()));
}
}
@@ -191,16 +189,16 @@ public class Mailbox {
private final boolean mayCreateChild;
private final boolean mayRename;
private final boolean mayDelete;
- private final long totalMessages;
- private final long unreadMessages;
- private final long totalThreads;
- private final long unreadThreads;
+ private final Number totalMessages;
+ private final Number unreadMessages;
+ private final Number totalThreads;
+ private final Number unreadThreads;
private final Rights sharedWith;
private final MailboxNamespace namespace;
@VisibleForTesting Mailbox(MailboxId id, String name, Optional<MailboxId> parentId, Optional<Role> role, SortOrder sortOrder, boolean mustBeOnlyMailbox,
boolean mayReadItems, boolean mayAddItems, boolean mayRemoveItems, boolean mayCreateChild, boolean mayRename, boolean mayDelete,
- long totalMessages, long unreadMessages, long totalThreads, long unreadThreads, Rights sharedWith, MailboxNamespace namespace) {
+ Number totalMessages, Number unreadMessages, Number totalThreads, Number unreadThreads, Rights sharedWith, MailboxNamespace namespace) {
this.id = id;
this.name = name;
@@ -270,19 +268,19 @@ public class Mailbox {
return mayDelete;
}
- public long getTotalMessages() {
+ public Number getTotalMessages() {
return totalMessages;
}
- public long getUnreadMessages() {
+ public Number getUnreadMessages() {
return unreadMessages;
}
- public long getTotalThreads() {
+ public Number getTotalThreads() {
return totalThreads;
}
- public long getUnreadThreads() {
+ public Number getUnreadThreads() {
return unreadThreads;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/a8026023/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
index 1356a6b..cf498df 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
@@ -35,6 +35,7 @@ import org.apache.james.jmap.model.ClientId;
import org.apache.james.jmap.model.GetMailboxesRequest;
import org.apache.james.jmap.model.GetMailboxesResponse;
import org.apache.james.jmap.model.MailboxFactory;
+import org.apache.james.jmap.model.Number;
import org.apache.james.jmap.model.mailbox.Mailbox;
import org.apache.james.jmap.model.mailbox.Role;
import org.apache.james.jmap.model.mailbox.SortOrder;
@@ -138,7 +139,7 @@ public class GetMailboxesMethodTest {
.extracting(GetMailboxesResponse.class::cast)
.flatExtracting(GetMailboxesResponse::getList)
.extracting(Mailbox::getId, Mailbox::getName, Mailbox::getUnreadMessages)
- .containsOnly(Tuple.tuple(InMemoryId.of(1), mailboxPath.getName(), 2L));
+ .containsOnly(Tuple.tuple(InMemoryId.of(1), mailboxPath.getName(), Number.fromLong(2L)));
}
@Test
@@ -281,7 +282,7 @@ public class GetMailboxesMethodTest {
.extracting(GetMailboxesResponse.class::cast)
.flatExtracting(GetMailboxesResponse::getList)
.extracting(Mailbox::getTotalMessages, Mailbox::getUnreadMessages)
- .containsOnly(Tuple.tuple(0L, 0L));
+ .containsOnly(Tuple.tuple(Number.ZERO, Number.ZERO));
}
@Test
@@ -305,7 +306,7 @@ public class GetMailboxesMethodTest {
.extracting(GetMailboxesResponse.class::cast)
.flatExtracting(GetMailboxesResponse::getList)
.extracting(Mailbox::getTotalMessages)
- .containsExactly(2L);
+ .containsExactly(Number.fromLong(2L));
}
@Test
@@ -332,7 +333,7 @@ public class GetMailboxesMethodTest {
.extracting(GetMailboxesResponse.class::cast)
.flatExtracting(GetMailboxesResponse::getList)
.extracting(Mailbox::getUnreadMessages)
- .containsExactly(2L);
+ .containsExactly(Number.fromLong(2L));
}
@Test
http://git-wip-us.apache.org/repos/asf/james-project/blob/a8026023/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/GetMailboxMessageListResponseTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/GetMailboxMessageListResponseTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/GetMailboxMessageListResponseTest.java
index e3c1fc4..4cf79fa 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/GetMailboxMessageListResponseTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/GetMailboxMessageListResponseTest.java
@@ -75,7 +75,8 @@ public class GetMailboxMessageListResponseTest {
.build();
List<String> sort = ImmutableList.of("date desc");
List<MessageId> messageIds = ImmutableList.of(TestMessageId.of(3), TestMessageId.of(4));
- GetMessageListResponse expectedGetMessageListResponse = new GetMessageListResponse(null, filterCondition, sort, false, null, false, 0, 0, ImmutableList.of(), messageIds);
+ GetMessageListResponse expectedGetMessageListResponse = new GetMessageListResponse(null, filterCondition, sort, false, null, false,
+ Number.ZERO, Number.ZERO, ImmutableList.of(), messageIds);
GetMessageListResponse getMessageListResponse = GetMessageListResponse.builder()
.filter(filterCondition)
http://git-wip-us.apache.org/repos/asf/james-project/blob/a8026023/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/MailboxTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/MailboxTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/MailboxTest.java
index 94c5937..384ff73 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/MailboxTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/MailboxTest.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.util.Optional;
+import org.apache.james.jmap.model.Number;
import org.apache.james.mailbox.inmemory.InMemoryId;
import org.junit.Test;
@@ -62,8 +63,14 @@ public class MailboxTest {
@Test
public void buildShouldWork() {
+ Number totalMessages = Number.fromLong(456);
+ Number unreadMessages = Number.fromLong(789);
+ Number totalThreads = Number.fromLong(741);
+ Number unreadThreads = Number.fromLong(852);
Mailbox expectedMailbox = new Mailbox(InMemoryId.of(1), "name", Optional.of(InMemoryId.of(0)), Optional.of(Role.DRAFTS), SortOrder.of(123),
- true, true, true, true, true, true, true, 456, 789, 741, 852, Rights.EMPTY, MailboxNamespace.personal());
+ true, true, true, true, true, true, true,
+ totalMessages, unreadMessages, totalThreads, unreadThreads,
+ Rights.EMPTY, MailboxNamespace.personal());
Mailbox mailbox = Mailbox.builder()
.id(InMemoryId.of(1))
@@ -105,7 +112,7 @@ public class MailboxTest {
.totalMessages(-1234)
.build();
- assertThat(mailbox.getTotalMessages()).isEqualTo(0);
+ assertThat(mailbox.getTotalMessages()).isEqualTo(Number.ZERO);
}
@Test
@@ -116,7 +123,7 @@ public class MailboxTest {
.unreadMessages(-1234)
.build();
- assertThat(mailbox.getUnreadMessages()).isEqualTo(0);
+ assertThat(mailbox.getUnreadMessages()).isEqualTo(Number.ZERO);
}
@Test
@@ -127,7 +134,7 @@ public class MailboxTest {
.totalMessages(0)
.build();
- assertThat(mailbox.getTotalMessages()).isEqualTo(0);
+ assertThat(mailbox.getTotalMessages()).isEqualTo(Number.ZERO);
}
@Test
@@ -138,7 +145,7 @@ public class MailboxTest {
.unreadMessages(0)
.build();
- assertThat(mailbox.getUnreadMessages()).isEqualTo(0);
+ assertThat(mailbox.getUnreadMessages()).isEqualTo(Number.ZERO);
}
@Test
@@ -149,7 +156,8 @@ public class MailboxTest {
.totalMessages(1234)
.build();
- assertThat(mailbox.getTotalMessages()).isEqualTo(1234);
+ Number expectedTotalMessages = Number.fromLong(1234);
+ assertThat(mailbox.getTotalMessages()).isEqualTo(expectedTotalMessages);
}
@Test
@@ -160,7 +168,8 @@ public class MailboxTest {
.unreadMessages(1234)
.build();
- assertThat(mailbox.getUnreadMessages()).isEqualTo(1234);
+ Number expectedTotalMessages = Number.fromLong(1234);
+ assertThat(mailbox.getUnreadMessages()).isEqualTo(expectedTotalMessages);
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org