Repository: james-project
Updated Branches:
  refs/heads/master 0395ee41b -> 16689d35e


JAMES-1726 Update can introduce duplicate


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

Branch: refs/heads/master
Commit: 16689d35e10349fc48f01861261be3a363b605bf
Parents: 0395ee4
Author: Laura Royet <[email protected]>
Authored: Tue Apr 26 15:59:33 2016 +0200
Committer: Matthieu Baechler <[email protected]>
Committed: Tue May 3 10:13:57 2016 +0200

----------------------------------------------------------------------
 .../integration/SetMailboxesMethodTest.java     | 43 ++++++++++++++++++++
 1 file changed, 43 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/16689d35/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 ede31d0..2ef33ca 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
@@ -1512,4 +1512,47 @@ public abstract class SetMailboxesMethodTest {
                     hasEntry(equalTo("type"), equalTo("invalidArguments")),
                     hasEntry(equalTo("description"), equalTo("The mailbox 
'outbox' is a system mailbox.")))));
     }
+
+    @Test
+    public void 
setMailboxesShouldReturnNotUpdatedErrorWhenMovingMailboxTriggersNameConflict() {
+
+        jmapServer.serverProbe().createMailbox("#private", username, "A");
+        Mailbox<?> mailboxRootA = 
jmapServer.serverProbe().getMailbox("#private", username, "A");
+        String mailboxRootAId = mailboxRootA.getMailboxId().serialize();
+
+        jmapServer.serverProbe().createMailbox("#private", username, "A.B");
+        jmapServer.serverProbe().createMailbox("#private", username, "A.C");
+
+        jmapServer.serverProbe().createMailbox("#private", username, "A.B.C");
+        Mailbox<?> mailboxChildToMoveC = 
jmapServer.serverProbe().getMailbox("#private", username, "A.B.C");
+        String mailboxChildToMoveCId = 
mailboxChildToMoveC.getMailboxId().serialize();
+
+        String requestBody =
+              "[" +
+                  "  [ \"setMailboxes\"," +
+                  "    {" +
+                  "      \"update\": {" +
+                  "        \"" + mailboxChildToMoveCId + "\" : {" +
+                  "          \"parentId\" : \"" + mailboxRootAId + "\"" +
+                  "        }" +
+                  "      }" +
+                  "    }," +
+                  "    \"#0\"" +
+                  "  ]" +
+                  "]";
+
+      given()
+          .accept(ContentType.JSON)
+          .contentType(ContentType.JSON)
+          .header("Authorization", this.accessToken.serialize())
+          .body(requestBody)
+      .when()
+          .post("/jmap")
+      .then()
+          .statusCode(200)
+          .body(NAME, equalTo("mailboxesSet"))
+          .body(ARGUMENTS + ".notUpdated", 
hasEntry(equalTo(mailboxChildToMoveCId), Matchers.allOf(
+                  hasEntry(equalTo("type"), equalTo("invalidArguments")),
+                  hasEntry(equalTo("description"), equalTo("Cannot rename a 
mailbox to an already existing mailbox.")))));
+    }
 }


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

Reply via email to