Author: matthieu
Date: Wed Dec 16 15:30:35 2015
New Revision: 1720371
URL: http://svn.apache.org/viewvc?rev=1720371&view=rev
Log:
JAMES-1646 cover Role with tests and change from() to return Optional<Role>
Added:
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/RoleTest.java
- copied, changed from r1720167,
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Role.java
Modified:
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Mailbox.java
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Role.java
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxTest.java
Modified:
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Mailbox.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Mailbox.java?rev=1720371&r1=1720370&r2=1720371&view=diff
==============================================================================
---
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Mailbox.java
(original)
+++
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Mailbox.java
Wed Dec 16 15:30:35 2015
@@ -43,7 +43,7 @@ public class Mailbox {
private String id;
private String name;
private String parentId;
- private Role role;
+ private Optional<Role> role;
private int sortOrder;
private boolean mustBeOnlyMailbox;
private boolean mayReadItems;
@@ -77,7 +77,7 @@ public class Mailbox {
return this;
}
- public Builder role(Role role) {
+ public Builder role(Optional<Role> role) {
this.role = role;
return this;
}
@@ -148,7 +148,7 @@ public class Mailbox {
Preconditions.checkState(sortOrder >= 0, "'sortOrder' must be
positive");
Preconditions.checkState(sortOrder < MAX_SORT_ORDER, "'sortOrder'
must be lesser than " + MAX_SORT_ORDER);
- return new Mailbox(id, name, Optional.ofNullable(parentId),
Optional.ofNullable(role), sortOrder, mustBeOnlyMailbox, mayReadItems,
mayAddItems, mayRemoveItems, mayCreateChild, mayRename, mayDelete,
+ return new Mailbox(id, name, Optional.ofNullable(parentId), role,
sortOrder, mustBeOnlyMailbox, mayReadItems, mayAddItems, mayRemoveItems,
mayCreateChild, mayRename, mayDelete,
totalMessages, unreadMessages, totalThreads,
unreadThreads);
}
}
Modified:
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Role.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Role.java?rev=1720371&r1=1720370&r2=1720371&view=diff
==============================================================================
---
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Role.java
(original)
+++
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Role.java
Wed Dec 16 15:30:35 2015
@@ -18,6 +18,9 @@
****************************************************************/
package org.apache.james.jmap.model;
+import java.util.Locale;
+import java.util.Optional;
+
public enum Role {
INBOX("inbox"),
@@ -28,20 +31,20 @@ public enum Role {
TRASH("trash"),
SPAM("spam"),
TEMPLATES("templates");
-
+
private String name;
- private Role(String name) {
+ Role(String name) {
this.name = name;
}
- public static Role from(String name) {
+ public static Optional<Role> from(String name) {
for (Role role : values()) {
- if (role.serialize().equals(name.toLowerCase())) {
- return role;
+ if (role.serialize().equals(name.toLowerCase(Locale.ENGLISH))) {
+ return Optional.of(role);
}
}
- return null;
+ return Optional.empty();
}
public String serialize() {
Modified:
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxTest.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxTest.java?rev=1720371&r1=1720370&r2=1720371&view=diff
==============================================================================
---
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxTest.java
(original)
+++
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxTest.java
Wed Dec 16 15:30:35 2015
@@ -93,7 +93,7 @@ public class MailboxTest {
.id("id")
.name("name")
.parentId("parentId")
- .role(Role.DRAFTS)
+ .role(Optional.of(Role.DRAFTS))
.sortOrder(123)
.mustBeOnlyMailbox(true)
.mayReadItems(true)
Copied:
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/RoleTest.java
(from r1720167,
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Role.java)
URL:
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/RoleTest.java?p2=james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/RoleTest.java&p1=james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Role.java&r1=1720167&r2=1720371&rev=1720371&view=diff
==============================================================================
---
james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Role.java
(original)
+++
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/RoleTest.java
Wed Dec 16 15:30:35 2015
@@ -1,3 +1,4 @@
+package org.apache.james.jmap.model;
/****************************************************************
* Licensed to the Apache Software Foundation (ASF) under one *
* or more contributor license agreements. See the NOTICE file *
@@ -16,35 +17,40 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.jmap.model;
-public enum Role {
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.Test;
- INBOX("inbox"),
- ARCHIVE("archive"),
- DRAFTS("drafts"),
- OUTBOX("outbox"),
- SENT("sent"),
- TRASH("trash"),
- SPAM("spam"),
- TEMPLATES("templates");
-
- private String name;
+import java.util.Locale;
+import java.util.Optional;
- private Role(String name) {
- this.name = name;
+public class RoleTest {
+
+ @Test
+ public void fromShouldReturnInbox() {
+ assertThat(Role.from("inbox")).isEqualTo(Optional.of(Role.INBOX));
}
- public static Role from(String name) {
- for (Role role : values()) {
- if (role.serialize().equals(name.toLowerCase())) {
- return role;
- }
- }
- return null;
+ @Test
+ public void fromShouldReturnEmptyWhenUnknownValue() {
+ assertThat(Role.from("jjjj")).isEqualTo(Optional.empty());
}
- public String serialize() {
- return name;
+ @Test
+ public void fromShouldReturnInboxWhenContainsUppercaseValue() {
+ assertThat(Role.from("InBox")).isEqualTo(Optional.of(Role.INBOX));
}
-}
+
+ @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);
+ }
+ }
+
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]