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