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 ro...@apache.org on 2018/02/28 13:46:35 UTC
[6/8] james-project git commit: JAMES-2341 Move Role at API level
JAMES-2341 Move Role at API level
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/e640b76f
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/e640b76f
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/e640b76f
Branch: refs/heads/master
Commit: e640b76fece2fa2bfd449d840ad0d7d6cfacba90
Parents: f8c62f2
Author: Antoine Duprat <ad...@linagora.com>
Authored: Tue Feb 27 11:20:46 2018 +0100
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Wed Feb 28 13:29:32 2018 +0100
----------------------------------------------------------------------
.../java/org/apache/james/mailbox/Role.java | 121 ++++++++++++++
.../java/org/apache/james/mailbox/RoleTest.java | 163 +++++++++++++++++++
.../integration/SetMessagesMethodTest.java | 2 +-
.../MailboxRoleNotFoundException.java | 2 +-
.../james/jmap/json/ObjectMapperFactory.java | 4 +
.../org/apache/james/jmap/json/RoleMixIn.java | 27 +++
.../SetMailboxesDestructionProcessor.java | 2 +-
.../methods/SetMailboxesUpdateProcessor.java | 2 +-
.../methods/SetMessagesCreationProcessor.java | 2 +-
.../methods/SetMessagesUpdateProcessor.java | 2 +-
.../apache/james/jmap/model/MailboxFactory.java | 2 +-
.../james/jmap/model/mailbox/Mailbox.java | 1 +
.../model/mailbox/MailboxCreateRequest.java | 1 +
.../model/mailbox/MailboxUpdateRequest.java | 1 +
.../apache/james/jmap/model/mailbox/Role.java | 125 --------------
.../james/jmap/model/mailbox/SortOrder.java | 2 +
.../james/jmap/send/PostDequeueDecorator.java | 2 +-
.../jmap/utils/SystemMailboxesProvider.java | 2 +-
.../jmap/utils/SystemMailboxesProviderImpl.java | 2 +-
.../jmap/methods/GetMailboxesMethodTest.java | 2 +-
.../SetMessagesCreationProcessorTest.java | 2 +-
.../model/mailbox/MailboxCreateRequestTest.java | 1 +
.../james/jmap/model/mailbox/MailboxTest.java | 1 +
.../james/jmap/model/mailbox/RoleTest.java | 162 ------------------
.../utils/SystemMailboxesProviderImplTest.java | 2 +-
25 files changed, 335 insertions(+), 300 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/mailbox/api/src/main/java/org/apache/james/mailbox/Role.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/Role.java b/mailbox/api/src/main/java/org/apache/james/mailbox/Role.java
new file mode 100644
index 0000000..675b91b
--- /dev/null
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/Role.java
@@ -0,0 +1,121 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+package org.apache.james.mailbox;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.function.BiFunction;
+
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Objects;
+import com.google.common.collect.ImmutableList;
+
+public class Role {
+
+ public static final String USER_DEFINED_ROLE_PREFIX = "x-";
+
+ private static final BiFunction<String, String, Boolean> CASE_SENSITIVE_COMPARATOR = (a, b) -> a.equals(b);
+ private static final BiFunction<String, String, Boolean> NON_CASE_SENSITIVE_COMPARATOR = (a, b) -> a.equalsIgnoreCase(b);
+
+ public static final Role INBOX = new Role("inbox", DefaultMailboxes.INBOX, NON_CASE_SENSITIVE_COMPARATOR);
+ public static final Role DRAFTS = new Role("drafts", DefaultMailboxes.DRAFTS, CASE_SENSITIVE_COMPARATOR);
+ public static final Role OUTBOX = new Role("outbox", DefaultMailboxes.OUTBOX, CASE_SENSITIVE_COMPARATOR);
+ public static final Role SENT = new Role("sent", DefaultMailboxes.SENT, CASE_SENSITIVE_COMPARATOR);
+ public static final Role TRASH = new Role("trash", DefaultMailboxes.TRASH, CASE_SENSITIVE_COMPARATOR);
+ public static final Role ARCHIVE = new Role("archive", DefaultMailboxes.ARCHIVE, CASE_SENSITIVE_COMPARATOR);
+ public static final Role SPAM = new Role("spam", DefaultMailboxes.SPAM, CASE_SENSITIVE_COMPARATOR);
+ public static final Role TEMPLATES = new Role("templates", DefaultMailboxes.TEMPLATES, CASE_SENSITIVE_COMPARATOR);
+
+ private static final List<Role> ROLES =
+ ImmutableList.<Role>of(INBOX, DRAFTS, OUTBOX, SENT, TRASH, ARCHIVE, SPAM, TEMPLATES);
+
+ private final String name;
+ private final String defaultMailbox;
+ private final BiFunction<String, String, Boolean> comparator;
+
+ @VisibleForTesting Role(String name, String defaultMailbox, BiFunction<String, String, Boolean> comparator) {
+ this.name = name;
+ this.defaultMailbox = defaultMailbox;
+ this.comparator = comparator;
+ }
+
+ @VisibleForTesting Role(String name) {
+ this.name = name;
+ this.defaultMailbox = null;
+ this.comparator = NON_CASE_SENSITIVE_COMPARATOR;
+ }
+
+ public static Optional<Role> from(String name) {
+ Optional<Role> predefinedRole = predefinedRole(name);
+ if (predefinedRole.isPresent()) {
+ return predefinedRole;
+ } else {
+ return tryBuildCustomRole(name);
+ }
+ }
+
+ private static Optional<Role> predefinedRole(String name) {
+ return ROLES.stream()
+ .filter(role -> role.comparator.apply(role.defaultMailbox, name))
+ .findFirst();
+ }
+
+ private static Optional<Role> tryBuildCustomRole(String name) {
+ if (name.startsWith(USER_DEFINED_ROLE_PREFIX)) {
+ return Optional.of(new Role(name));
+ }
+ return Optional.empty();
+ }
+
+ public boolean isSystemRole() {
+ return predefinedRole(defaultMailbox).isPresent();
+ }
+
+ public String serialize() {
+ return name;
+ }
+
+ public String getDefaultMailbox() {
+ return defaultMailbox;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(name, defaultMailbox);
+ }
+
+ @Override
+ public boolean equals(Object object) {
+ if (object instanceof Role) {
+ Role that = (Role) object;
+ return Objects.equal(this.name, that.name)
+ && Objects.equal(this.defaultMailbox, that.defaultMailbox);
+ }
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("name", name)
+ .add("defaultMailbox", defaultMailbox)
+ .toString();
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/mailbox/api/src/test/java/org/apache/james/mailbox/RoleTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/RoleTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/RoleTest.java
new file mode 100644
index 0000000..134ecf3
--- /dev/null
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/RoleTest.java
@@ -0,0 +1,163 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+package org.apache.james.mailbox;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.Locale;
+import java.util.Optional;
+
+import org.apache.james.mailbox.Role;
+import org.junit.Test;
+
+public class RoleTest {
+
+ @Test
+ public void fromShouldReturnEmptyWhenUnknownValue() {
+ assertThat(Role.from("jjjj")).isEqualTo(Optional.empty());
+ }
+
+ @Test
+ public void fromShouldReturnSomethingWhenXPrefixedRole() {
+ assertThat(Role.from("x-client-specific-role")).isEqualTo(Optional.of(new Role("x-client-specific-role")));
+ }
+
+ @Test
+ public void isSystemRoleShouldReturnFalseWhenXPrefixedRole() {
+ Role role = Role.from("x-client-specific-role").get();
+ assertThat(role.isSystemRole()).isFalse();
+ }
+
+ @Test
+ public void fromShouldReturnInboxWhenContainsUppercaseValueInTurkish() {
+ Locale previousLocale = Locale.getDefault();
+ Locale.setDefault(Locale.forLanguageTag("tr"));
+ try {
+ assertThat(Role.from("InBox")).isEqualTo(Optional.of(Role.INBOX));
+ } finally {
+ Locale.setDefault(previousLocale);
+ }
+ }
+
+ @Test
+ public void isSystemRoleShouldBeTrueWhenInbox() {
+ assertThat(Role.INBOX.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void isSystemRoleShouldBeTrueWhenArchive() {
+ assertThat(Role.ARCHIVE.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void isSystemRoleShouldBeTrueWhenDrafts() {
+ assertThat(Role.DRAFTS.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void isSystemRoleShouldBeTrueWhenOutbox() {
+ assertThat(Role.OUTBOX.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void isSystemRoleShouldBeTrueWhenSent() {
+ assertThat(Role.SENT.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void isSystemRoleShouldBeTrueWhenTrash() {
+ assertThat(Role.TRASH.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void isSystemRoleShouldBeTrueWhenSpam() {
+ assertThat(Role.SPAM.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void isSystemRoleShouldBeTrueWhenTemplates() {
+ assertThat(Role.TEMPLATES.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void isSystemRoleShouldBeFalseWhenUserDefinedRole() {
+ Role userRole = Role.from(Role.USER_DEFINED_ROLE_PREFIX + "myRole").get();
+ assertThat(userRole.isSystemRole()).isFalse();
+ }
+
+ @Test
+ public void theINBOXMailboxNameShouldBeASystemMailbox() {
+ Role role = Role.from("INBOX").get();
+ assertThat(role.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void theInBoXMailboxNameShouldBeASystemMailbox() {
+ Role role = Role.from("InBoX").get();
+ assertThat(role.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void theDraftsMailboxNameShouldBeASystemMailbox() {
+ Role role = Role.from("Drafts").get();
+ assertThat(role.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void theDrAfTsMailboxNameShouldNotBeASystemMailbox() {
+ Optional<Role> role = Role.from("DrAfTs");
+ assertThat(role).isEmpty();
+ }
+
+ @Test
+ public void theOutboxMailboxNameShouldBeASystemMailbox() {
+ Role role = Role.from("Outbox").get();
+ assertThat(role.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void theOuTbOxMailboxNameShouldNotBeASystemMailbox() {
+ Optional<Role> role = Role.from("OuTbOx");
+ assertThat(role).isEmpty();
+ }
+
+ @Test
+ public void theSentMailboxNameShouldBeASystemMailbox() {
+ Role role = Role.from("Sent").get();
+ assertThat(role.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void theSeNtMailboxNameShouldNotBeASystemMailbox() {
+ Optional<Role> role = Role.from("SeNt");
+ assertThat(role).isEmpty();
+ }
+
+ @Test
+ public void theTrashMailboxNameShouldBeASystemMailbox() {
+ Role role = Role.from("Trash").get();
+ assertThat(role.isSystemRole()).isTrue();
+ }
+
+ @Test
+ public void theTrAsHMailboxNameShouldNotBeASystemMailbox() {
+ Optional<Role> role = Role.from("TrAsH");
+ assertThat(role).isEmpty();
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
index c63b022..1fc4864 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
@@ -58,10 +58,10 @@ import org.apache.http.client.utils.URIBuilder;
import org.apache.james.GuiceJamesServer;
import org.apache.james.jmap.HttpJmapAuthentication;
import org.apache.james.jmap.api.access.AccessToken;
-import org.apache.james.jmap.model.mailbox.Role;
import org.apache.james.mailbox.DefaultMailboxes;
import org.apache.james.mailbox.FlagsBuilder;
import org.apache.james.mailbox.MailboxListener;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Attachment;
import org.apache.james.mailbox.model.ComposedMessageId;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/exceptions/MailboxRoleNotFoundException.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/exceptions/MailboxRoleNotFoundException.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/exceptions/MailboxRoleNotFoundException.java
index 88692c8..89d63a1 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/exceptions/MailboxRoleNotFoundException.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/exceptions/MailboxRoleNotFoundException.java
@@ -19,7 +19,7 @@
package org.apache.james.jmap.exceptions;
-import org.apache.james.jmap.model.mailbox.Role;
+import org.apache.james.mailbox.Role;
public class MailboxRoleNotFoundException extends RuntimeException {
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/json/ObjectMapperFactory.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/json/ObjectMapperFactory.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/json/ObjectMapperFactory.java
index c48527e..36c76fa 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/json/ObjectMapperFactory.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/json/ObjectMapperFactory.java
@@ -25,6 +25,7 @@ import java.util.Set;
import javax.inject.Inject;
import org.apache.james.jmap.model.mailbox.Rights;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MessageId;
@@ -70,6 +71,9 @@ public class ObjectMapperFactory {
mailboxIdModule.addKeySerializer(MessageId.class, new MessageIdKeySerializer());
mailboxIdModule.addKeyDeserializer(Rights.Username.class, new UsernameKeyDeserializer());
mailboxIdModule.addDeserializer(Rights.Right.class, new RightDeserializer());
+
+ mailboxIdModule.setMixInAnnotation(Role.class, RoleMixIn.class);
+
jacksonModules = JACKSON_BASE_MODULES.add(mailboxIdModule).build();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/json/RoleMixIn.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/json/RoleMixIn.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/json/RoleMixIn.java
new file mode 100644
index 0000000..29060b4
--- /dev/null
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/json/RoleMixIn.java
@@ -0,0 +1,27 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+package org.apache.james.jmap.json;
+
+import com.fasterxml.jackson.annotation.JsonValue;
+
+public abstract class RoleMixIn {
+
+ @JsonValue
+ abstract String serialize();
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesDestructionProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesDestructionProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesDestructionProcessor.java
index 2251d82..c81a2a1 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesDestructionProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesDestructionProcessor.java
@@ -35,11 +35,11 @@ import org.apache.james.jmap.model.SetMailboxesRequest;
import org.apache.james.jmap.model.SetMailboxesResponse;
import org.apache.james.jmap.model.SetMailboxesResponse.Builder;
import org.apache.james.jmap.model.mailbox.Mailbox;
-import org.apache.james.jmap.model.mailbox.Role;
import org.apache.james.jmap.utils.MailboxUtils;
import org.apache.james.jmap.utils.SortingHierarchicalCollections;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.SubscriptionManager;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.TooLongMailboxNameException;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java
index 912765f..1d2af08 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java
@@ -37,11 +37,11 @@ import org.apache.james.jmap.model.SetMailboxesResponse.Builder;
import org.apache.james.jmap.model.mailbox.Mailbox;
import org.apache.james.jmap.model.mailbox.MailboxUpdateRequest;
import org.apache.james.jmap.model.mailbox.Rights.Username;
-import org.apache.james.jmap.model.mailbox.Role;
import org.apache.james.jmap.utils.MailboxUtils;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.SubscriptionManager;
import org.apache.james.mailbox.exception.DifferentDomainException;
import org.apache.james.mailbox.exception.MailboxException;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
index 26a50bc..c7f76ac 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
@@ -49,11 +49,11 @@ import org.apache.james.jmap.model.SetMessagesError;
import org.apache.james.jmap.model.SetMessagesRequest;
import org.apache.james.jmap.model.SetMessagesResponse;
import org.apache.james.jmap.model.SetMessagesResponse.Builder;
-import org.apache.james.jmap.model.mailbox.Role;
import org.apache.james.jmap.utils.SystemMailboxesProvider;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.model.MailboxId;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
index 1a003e3..e6f230c 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
@@ -44,12 +44,12 @@ import org.apache.james.jmap.model.SetError;
import org.apache.james.jmap.model.SetMessagesRequest;
import org.apache.james.jmap.model.SetMessagesResponse;
import org.apache.james.jmap.model.UpdateMessagePatch;
-import org.apache.james.jmap.model.mailbox.Role;
import org.apache.james.jmap.utils.SystemMailboxesProvider;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageIdManager;
import org.apache.james.mailbox.MessageManager;
import org.apache.james.mailbox.MessageManager.FlagsUpdateMode;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.model.FetchGroupImpl;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java
index fca9da2..949a6e4 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java
@@ -27,11 +27,11 @@ import org.apache.james.jmap.model.mailbox.Mailbox;
import org.apache.james.jmap.model.mailbox.MailboxNamespace;
import org.apache.james.jmap.model.mailbox.Rights;
import org.apache.james.jmap.model.mailbox.Rights.Username;
-import org.apache.james.jmap.model.mailbox.Role;
import org.apache.james.jmap.model.mailbox.SortOrder;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.model.MailboxCounters;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/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 9c771f4..8dc0ff2 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
@@ -24,6 +24,7 @@ import java.util.Optional;
import org.apache.james.jmap.methods.JmapResponseWriterImpl;
import org.apache.james.jmap.model.Number;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.model.MailboxId;
import com.fasterxml.jackson.annotation.JsonFilter;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/MailboxCreateRequest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/MailboxCreateRequest.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/MailboxCreateRequest.java
index c0eb828..e473726 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/MailboxCreateRequest.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/MailboxCreateRequest.java
@@ -24,6 +24,7 @@ import java.util.Optional;
import org.apache.commons.lang.NotImplementedException;
import org.apache.james.jmap.model.MailboxCreationId;
+import org.apache.james.mailbox.Role;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/MailboxUpdateRequest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/MailboxUpdateRequest.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/MailboxUpdateRequest.java
index 81cfc4a..b5a042a 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/MailboxUpdateRequest.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/MailboxUpdateRequest.java
@@ -23,6 +23,7 @@ import java.util.Objects;
import java.util.Optional;
import org.apache.commons.lang.NotImplementedException;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.MailboxId;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Role.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Role.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Role.java
deleted file mode 100644
index 8f7ee17..0000000
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/Role.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-package org.apache.james.jmap.model.mailbox;
-
-import java.util.List;
-import java.util.Optional;
-import java.util.function.BiFunction;
-
-import org.apache.james.mailbox.DefaultMailboxes;
-
-import com.fasterxml.jackson.annotation.JsonValue;
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Objects;
-import com.google.common.collect.ImmutableList;
-
-public class Role {
-
- public static final String USER_DEFINED_ROLE_PREFIX = "x-";
-
- private static final BiFunction<String, String, Boolean> CASE_SENSITIVE_COMPARATOR = (a, b) -> a.equals(b);
- private static final BiFunction<String, String, Boolean> NON_CASE_SENSITIVE_COMPARATOR = (a, b) -> a.equalsIgnoreCase(b);
-
- public static final Role INBOX = new Role("inbox", DefaultMailboxes.INBOX, NON_CASE_SENSITIVE_COMPARATOR);
- public static final Role DRAFTS = new Role("drafts", DefaultMailboxes.DRAFTS, CASE_SENSITIVE_COMPARATOR);
- public static final Role OUTBOX = new Role("outbox", DefaultMailboxes.OUTBOX, CASE_SENSITIVE_COMPARATOR);
- public static final Role SENT = new Role("sent", DefaultMailboxes.SENT, CASE_SENSITIVE_COMPARATOR);
- public static final Role TRASH = new Role("trash", DefaultMailboxes.TRASH, CASE_SENSITIVE_COMPARATOR);
- public static final Role ARCHIVE = new Role("archive", DefaultMailboxes.ARCHIVE, CASE_SENSITIVE_COMPARATOR);
- public static final Role SPAM = new Role("spam", DefaultMailboxes.SPAM, CASE_SENSITIVE_COMPARATOR);
- public static final Role TEMPLATES = new Role("templates", DefaultMailboxes.TEMPLATES, CASE_SENSITIVE_COMPARATOR);
-
- private static final List<Role> ROLES =
- ImmutableList.<Role>of(INBOX, DRAFTS, OUTBOX, SENT, TRASH, ARCHIVE, SPAM, TEMPLATES);
-
- private final String name;
- private final String defaultMailbox;
- private final BiFunction<String, String, Boolean> comparator;
-
- @VisibleForTesting Role(String name, String defaultMailbox, BiFunction<String, String, Boolean> comparator) {
- this.name = name;
- this.defaultMailbox = defaultMailbox;
- this.comparator = comparator;
- }
-
- @VisibleForTesting Role(String name) {
- this.name = name;
- this.defaultMailbox = null;
- this.comparator = NON_CASE_SENSITIVE_COMPARATOR;
- }
-
- public static Optional<Role> from(String name) {
- Optional<Role> predefinedRole = predefinedRole(name);
- if (predefinedRole.isPresent()) {
- return predefinedRole;
- } else {
- return tryBuildCustomRole(name);
- }
- }
-
- private static Optional<Role> predefinedRole(String name) {
- return ROLES.stream()
- .filter(role -> role.comparator.apply(role.defaultMailbox, name))
- .findFirst();
- }
-
- private static Optional<Role> tryBuildCustomRole(String name) {
- if (name.startsWith(USER_DEFINED_ROLE_PREFIX)) {
- return Optional.of(new Role(name));
- }
- return Optional.empty();
- }
-
- public boolean isSystemRole() {
- return predefinedRole(defaultMailbox).isPresent();
- }
-
- @JsonValue
- public String serialize() {
- return name;
- }
-
- public String getDefaultMailbox() {
- return defaultMailbox;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(name, defaultMailbox);
- }
-
- @Override
- public boolean equals(Object object) {
- if (object instanceof Role) {
- Role that = (Role) object;
- return Objects.equal(this.name, that.name)
- && Objects.equal(this.defaultMailbox, that.defaultMailbox);
- }
- return false;
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("name", name)
- .add("defaultMailbox", defaultMailbox)
- .toString();
- }
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/SortOrder.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/SortOrder.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/SortOrder.java
index 6284381..27c2a65 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/SortOrder.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/SortOrder.java
@@ -20,6 +20,8 @@ package org.apache.james.jmap.model.mailbox;
import java.util.Optional;
+import org.apache.james.mailbox.Role;
+
import com.fasterxml.jackson.annotation.JsonValue;
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
index 9220aca..814ba8c 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
@@ -25,13 +25,13 @@ import javax.mail.Flags;
import javax.mail.Flags.Flag;
import org.apache.james.jmap.exceptions.MailboxRoleNotFoundException;
-import org.apache.james.jmap.model.mailbox.Role;
import org.apache.james.jmap.send.exception.MailShouldBeInOutboxException;
import org.apache.james.jmap.utils.SystemMailboxesProvider;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageIdManager;
import org.apache.james.mailbox.MessageManager;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.FetchGroupImpl;
import org.apache.james.mailbox.model.MailboxId;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/SystemMailboxesProvider.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/SystemMailboxesProvider.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/SystemMailboxesProvider.java
index 1b55c55..57e41bf 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/SystemMailboxesProvider.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/SystemMailboxesProvider.java
@@ -22,9 +22,9 @@ package org.apache.james.jmap.utils;
import java.util.stream.Stream;
import org.apache.james.jmap.exceptions.MailboxRoleNotFoundException;
-import org.apache.james.jmap.model.mailbox.Role;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.exception.MailboxException;
public interface SystemMailboxesProvider {
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/SystemMailboxesProviderImpl.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/SystemMailboxesProviderImpl.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/SystemMailboxesProviderImpl.java
index 500f9ab..50bd057 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/SystemMailboxesProviderImpl.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/SystemMailboxesProviderImpl.java
@@ -23,10 +23,10 @@ import java.util.stream.Stream;
import javax.inject.Inject;
-import org.apache.james.jmap.model.mailbox.Role;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.model.MailboxMetaData;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/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 f0f6d3f..c750526 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
@@ -37,11 +37,11 @@ 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;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.acl.GroupMembershipResolver;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.inmemory.InMemoryId;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
index 022be44..628b67e 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
@@ -44,7 +44,6 @@ import org.apache.james.jmap.model.MessageFactory;
import org.apache.james.jmap.model.MessagePreviewGenerator;
import org.apache.james.jmap.model.SetMessagesRequest;
import org.apache.james.jmap.model.SetMessagesResponse;
-import org.apache.james.jmap.model.mailbox.Role;
import org.apache.james.jmap.send.MailFactory;
import org.apache.james.jmap.send.MailMetadata;
import org.apache.james.jmap.send.MailSpool;
@@ -57,6 +56,7 @@ import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageIdManager;
import org.apache.james.mailbox.MessageManager;
import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.inmemory.InMemoryId;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/MailboxCreateRequestTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/MailboxCreateRequestTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/MailboxCreateRequestTest.java
index 72e2d37..ce719d9 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/MailboxCreateRequestTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/MailboxCreateRequestTest.java
@@ -22,6 +22,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import org.apache.commons.lang.NotImplementedException;
+import org.apache.james.mailbox.Role;
import org.junit.Test;
public class MailboxCreateRequestTest {
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/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 5875a5b..be674c3 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
@@ -24,6 +24,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.Role;
import org.apache.james.mailbox.inmemory.InMemoryId;
import org.junit.Test;
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/RoleTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/RoleTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/RoleTest.java
deleted file mode 100644
index fcdcede..0000000
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/mailbox/RoleTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-package org.apache.james.jmap.model.mailbox;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.Locale;
-import java.util.Optional;
-
-import org.junit.Test;
-
-public class RoleTest {
-
- @Test
- public void fromShouldReturnEmptyWhenUnknownValue() {
- assertThat(Role.from("jjjj")).isEqualTo(Optional.empty());
- }
-
- @Test
- public void fromShouldReturnSomethingWhenXPrefixedRole() {
- assertThat(Role.from("x-client-specific-role")).isEqualTo(Optional.of(new Role("x-client-specific-role")));
- }
-
- @Test
- public void isSystemRoleShouldReturnFalseWhenXPrefixedRole() {
- Role role = Role.from("x-client-specific-role").get();
- assertThat(role.isSystemRole()).isFalse();
- }
-
- @Test
- public void fromShouldReturnInboxWhenContainsUppercaseValueInTurkish() {
- Locale previousLocale = Locale.getDefault();
- Locale.setDefault(Locale.forLanguageTag("tr"));
- try {
- assertThat(Role.from("InBox")).isEqualTo(Optional.of(Role.INBOX));
- } finally {
- Locale.setDefault(previousLocale);
- }
- }
-
- @Test
- public void isSystemRoleShouldBeTrueWhenInbox() {
- assertThat(Role.INBOX.isSystemRole()).isTrue();
- }
-
- @Test
- public void isSystemRoleShouldBeTrueWhenArchive() {
- assertThat(Role.ARCHIVE.isSystemRole()).isTrue();
- }
-
- @Test
- public void isSystemRoleShouldBeTrueWhenDrafts() {
- assertThat(Role.DRAFTS.isSystemRole()).isTrue();
- }
-
- @Test
- public void isSystemRoleShouldBeTrueWhenOutbox() {
- assertThat(Role.OUTBOX.isSystemRole()).isTrue();
- }
-
- @Test
- public void isSystemRoleShouldBeTrueWhenSent() {
- assertThat(Role.SENT.isSystemRole()).isTrue();
- }
-
- @Test
- public void isSystemRoleShouldBeTrueWhenTrash() {
- assertThat(Role.TRASH.isSystemRole()).isTrue();
- }
-
- @Test
- public void isSystemRoleShouldBeTrueWhenSpam() {
- assertThat(Role.SPAM.isSystemRole()).isTrue();
- }
-
- @Test
- public void isSystemRoleShouldBeTrueWhenTemplates() {
- assertThat(Role.TEMPLATES.isSystemRole()).isTrue();
- }
-
- @Test
- public void isSystemRoleShouldBeFalseWhenUserDefinedRole() {
- Role userRole = Role.from(Role.USER_DEFINED_ROLE_PREFIX + "myRole").get();
- assertThat(userRole.isSystemRole()).isFalse();
- }
-
- @Test
- public void theINBOXMailboxNameShouldBeASystemMailbox() {
- Role role = Role.from("INBOX").get();
- assertThat(role.isSystemRole()).isTrue();
- }
-
- @Test
- public void theInBoXMailboxNameShouldBeASystemMailbox() {
- Role role = Role.from("InBoX").get();
- assertThat(role.isSystemRole()).isTrue();
- }
-
- @Test
- public void theDraftsMailboxNameShouldBeASystemMailbox() {
- Role role = Role.from("Drafts").get();
- assertThat(role.isSystemRole()).isTrue();
- }
-
- @Test
- public void theDrAfTsMailboxNameShouldNotBeASystemMailbox() {
- Optional<Role> role = Role.from("DrAfTs");
- assertThat(role).isEmpty();
- }
-
- @Test
- public void theOutboxMailboxNameShouldBeASystemMailbox() {
- Role role = Role.from("Outbox").get();
- assertThat(role.isSystemRole()).isTrue();
- }
-
- @Test
- public void theOuTbOxMailboxNameShouldNotBeASystemMailbox() {
- Optional<Role> role = Role.from("OuTbOx");
- assertThat(role).isEmpty();
- }
-
- @Test
- public void theSentMailboxNameShouldBeASystemMailbox() {
- Role role = Role.from("Sent").get();
- assertThat(role.isSystemRole()).isTrue();
- }
-
- @Test
- public void theSeNtMailboxNameShouldNotBeASystemMailbox() {
- Optional<Role> role = Role.from("SeNt");
- assertThat(role).isEmpty();
- }
-
- @Test
- public void theTrashMailboxNameShouldBeASystemMailbox() {
- Role role = Role.from("Trash").get();
- assertThat(role.isSystemRole()).isTrue();
- }
-
- @Test
- public void theTrAsHMailboxNameShouldNotBeASystemMailbox() {
- Optional<Role> role = Role.from("TrAsH");
- assertThat(role).isEmpty();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/e640b76f/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java
index e2ebc95..7efcf9a 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java
@@ -24,10 +24,10 @@ import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import org.apache.james.jmap.model.mailbox.Role;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
+import org.apache.james.mailbox.Role;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.fixture.MailboxFixture;
import org.apache.james.mailbox.mock.MockMailboxSession;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org