JAMES-2514 JMAP integration tests for long mailbox names

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

Branch: refs/heads/master
Commit: 614a3011dfa3011e914a72a23f6d0d79486e00bd
Parents: de70177
Author: Benoit Tellier <[email protected]>
Authored: Fri Aug 3 09:37:45 2018 +0700
Committer: Benoit Tellier <[email protected]>
Committed: Sat Aug 4 08:17:14 2018 +0700

----------------------------------------------------------------------
 .../CassandraSetMailboxesMethodTest.java        | 19 ----------------
 .../integration/SetMailboxesMethodTest.java     | 23 +++++++++++++-------
 .../memory/MemorySetMailboxesMethodTest.java    | 11 ----------
 3 files changed, 15 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/614a3011/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSetMailboxesMethodTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSetMailboxesMethodTest.java
 
b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSetMailboxesMethodTest.java
index 91f3a59..b10e974 100644
--- 
a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSetMailboxesMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSetMailboxesMethodTest.java
@@ -26,7 +26,6 @@ import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.methods.integration.SetMailboxesMethodTest;
 import org.junit.ClassRule;
-import org.junit.Ignore;
 import org.junit.Rule;
 
 public class CassandraSetMailboxesMethodTest extends SetMailboxesMethodTest {
@@ -47,22 +46,4 @@ public class CassandraSetMailboxesMethodTest extends 
SetMailboxesMethodTest {
         rule.await();
     }
 
-    @Override
-    @Ignore("JAMES-2514 Cassandra 3.0 supports long mailbox names")
-    public void setMailboxesShouldCreateWhenOverLimitName() {
-    }
-
-    @Override
-    @Ignore("JAMES-2514 Cassandra 3.0 supports long mailbox names")
-    public void setMailboxesShouldUpdateMailboxWhenOverLimitName() {
-    }
-
-    @Override
-    @Ignore
-    public void setMailboxesShouldNotUpdateMailboxWhenOverLimitName() {}
-
-    @Override
-    @Ignore
-    public void setMailboxesShouldNotCreateWhenOverLimitName() {}
-
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/614a3011/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java
 
b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java
index c1eaf4e..d562279 100644
--- 
a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java
@@ -49,6 +49,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.api.access.AccessToken;
 import org.apache.james.mailbox.DefaultMailboxes;
+import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxACL.Right;
 import org.apache.james.mailbox.model.MailboxConstants;
@@ -68,6 +69,7 @@ import org.junit.Test;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
+
 import io.restassured.RestAssured;
 
 public abstract class SetMailboxesMethodTest {
@@ -177,14 +179,15 @@ public abstract class SetMailboxesMethodTest {
     }
 
     @Test
-    public void setMailboxesShouldCreateWhenOverLimitName() throws Exception {
-        String overLimitName = StringUtils.repeat("a", 
MAILBOX_NAME_LENGTH_64K);
+    public void setMailboxesCreateShouldFailWhenOverLimitName() {
+        String overLimitName = StringUtils.repeat("a", 
MailboxManager.MAX_MAILBOX_NAME_LENGTH + 1);
+        String creationId = "create-id01";
         String requestBody =
             "[" +
                 "  [ \"setMailboxes\"," +
                 "    {" +
                 "      \"create\": {" +
-                "        \"create-id01\" : {" +
+                "        \"" + creationId + "\" : {" +
                 "          \"name\" : \"" + overLimitName + "\"" +
                 "        }" +
                 "      }" +
@@ -201,12 +204,14 @@ public abstract class SetMailboxesMethodTest {
         .then()
             .statusCode(200)
             .body(NAME, equalTo("mailboxesSet"))
-            .body(ARGUMENTS + ".created", hasKey("create-id01"));
+            .body(ARGUMENTS + ".notCreated", hasKey(creationId))
+            .body(ARGUMENTS + ".notCreated." + creationId + ".type", 
is("invalidArguments"))
+            .body(ARGUMENTS + ".notCreated." + creationId + ".description", 
is("The mailbox name length is too long"));
     }
 
     @Test
-    public void setMailboxesShouldUpdateMailboxWhenOverLimitName() throws 
Exception {
-        String overLimitName = StringUtils.repeat("a", 
MAILBOX_NAME_LENGTH_64K);
+    public void setMailboxesUpdateShouldFailWhenOverLimitName() throws 
Exception {
+        String overLimitName = StringUtils.repeat("a", 
MailboxManager.MAX_MAILBOX_NAME_LENGTH + 1);
         MailboxId mailboxId = 
mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, username, "myBox");
         String requestBody =
             "[" +
@@ -229,9 +234,11 @@ public abstract class SetMailboxesMethodTest {
         .then()
             .statusCode(200)
             .body(NAME, equalTo("mailboxesSet"))
-            .body(ARGUMENTS + ".updated", contains(mailboxId.serialize()));
+            .body(ARGUMENTS + ".notUpdated", hasKey(mailboxId.serialize()))
+            .body(ARGUMENTS + ".notUpdated." + mailboxId.serialize() + 
".type", is("invalidArguments"))
+            .body(ARGUMENTS + ".notUpdated." + mailboxId.serialize() + 
".description", is("The mailbox name length is too long"));
 
-        
assertThat(mailboxProbe.listSubscriptions(username)).contains(overLimitName);
+        
assertThat(mailboxProbe.listSubscriptions(username)).doesNotContain(overLimitName);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/614a3011/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMailboxesMethodTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMailboxesMethodTest.java
 
b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMailboxesMethodTest.java
index 0e1744e..3ccb659 100644
--- 
a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMailboxesMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMailboxesMethodTest.java
@@ -24,7 +24,6 @@ import java.io.IOException;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.MemoryJmapTestRule;
 import org.apache.james.jmap.methods.integration.SetMailboxesMethodTest;
-import org.junit.Ignore;
 import org.junit.Rule;
 
 public class MemorySetMailboxesMethodTest extends SetMailboxesMethodTest {
@@ -40,14 +39,4 @@ public class MemorySetMailboxesMethodTest extends 
SetMailboxesMethodTest {
     @Override
     protected void await() {
     }
-
-    @Ignore
-    @Override
-    public void setMailboxesShouldNotCreateWhenOverLimitName() {
-    }
-
-    @Ignore
-    @Override
-    public void setMailboxesShouldNotUpdateMailboxWhenOverLimitName() {
-    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to