Repository: james-project
Updated Branches:
  refs/heads/master a55693355 -> de561e452


JAMES-2230 Mailbox support hasSystemRole


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

Branch: refs/heads/master
Commit: 7245c362ab8b6323f336a187db31c1420f77c51a
Parents: a556933
Author: quynhn <qngu...@linagora.com>
Authored: Fri Nov 24 10:57:20 2017 +0700
Committer: Antoine Duprat <adup...@linagora.com>
Committed: Thu Nov 30 17:01:43 2017 +0100

----------------------------------------------------------------------
 .../james/jmap/model/mailbox/Mailbox.java       | 13 ++++
 .../james/jmap/model/mailbox/MailboxTest.java   | 72 ++++++++++++++++++--
 2 files changed, 81 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/7245c362/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 8432eeb..f821f88 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
@@ -26,6 +26,7 @@ import org.apache.james.jmap.methods.JmapResponseWriterImpl;
 import org.apache.james.mailbox.model.MailboxId;
 
 import com.fasterxml.jackson.annotation.JsonFilter;
+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;
@@ -292,6 +293,18 @@ public class Mailbox {
         return namespace;
     }
 
+    @JsonIgnore
+    public boolean hasRole(Role role) {
+        return this.role
+            .map(currentRole -> Objects.equals(currentRole, role))
+            .orElse(false);
+    }
+
+    @JsonIgnore
+    public boolean hasSystemRole() {
+        return role.map(Role::isSystemRole).orElse(false);
+    }
+
     @Override
     public final boolean equals(Object obj) {
         if (obj instanceof Mailbox) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/7245c362/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 e134adf..94c5937 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
@@ -155,11 +155,75 @@ public class MailboxTest {
     @Test
     public void unreadMessagesShouldAcceptPositiveValue() {
         Mailbox mailbox = Mailbox.builder()
-                .id(InMemoryId.of(1))
-                .name("name")
-                .unreadMessages(1234)
-                .build();
+            .id(InMemoryId.of(1))
+            .name("name")
+            .unreadMessages(1234)
+            .build();
 
         assertThat(mailbox.getUnreadMessages()).isEqualTo(1234);
     }
+
+    @Test
+    public void hasRoleShouldReturnFalseWhenMailboxEmptyRole() {
+        Mailbox mailbox = Mailbox.builder()
+            .id(InMemoryId.of(0))
+            .name("name")
+            .build();
+
+        assertThat(mailbox.hasRole(Role.OUTBOX)).isFalse();
+    }
+
+    @Test
+    public void hasRoleShouldReturnFalseWhenMailboxDoesNotHaveSameRole() {
+        Mailbox mailbox = Mailbox.builder()
+            .id(InMemoryId.of(0))
+            .name("name")
+            .role(Optional.of(Role.DRAFTS))
+            .build();
+
+        assertThat(mailbox.hasRole(Role.OUTBOX)).isFalse();
+    }
+
+    @Test
+    public void hasRoleShouldReturnTrueWhenMailboxHasSameRole() {
+        Mailbox mailbox = Mailbox.builder()
+            .id(InMemoryId.of(0))
+            .name("name")
+            .role(Optional.of(Role.DRAFTS))
+            .build();
+
+        assertThat(mailbox.hasRole(Role.DRAFTS)).isTrue();
+    }
+
+    @Test
+    public void hasSystemRoleShouldReturnFalseWhenMailboxHasNotSameRole() 
throws Exception {
+        Mailbox mailbox = Mailbox.builder()
+            .name("mailbox")
+            .id(InMemoryId.of(0))
+            .build();
+
+        assertThat(mailbox.hasSystemRole()).isFalse();
+    }
+
+    @Test
+    public void hasSystemRoleShouldReturnFalseWhenMailboxHasNotSystemRole() 
throws Exception {
+        Mailbox mailbox = Mailbox.builder()
+            .name("mailbox")
+            .id(InMemoryId.of(0))
+            .role(Role.from("any"))
+            .build();
+
+        assertThat(mailbox.hasSystemRole()).isFalse();
+    }
+
+    @Test
+    public void hasSystemRoleShouldReturnTrueWhenMailboxHasSystemRole() throws 
Exception {
+        Mailbox mailbox = Mailbox.builder()
+            .name("mailbox")
+            .id(InMemoryId.of(0))
+            .role(Optional.of(Role.OUTBOX))
+            .build();
+
+        assertThat(mailbox.hasSystemRole()).isTrue();
+    }
 }


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