http://git-wip-us.apache.org/repos/asf/james-project/blob/70a4fd59/mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/MailboxPathTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/MailboxPathTest.java
 
b/mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/MailboxPathTest.java
new file mode 100644
index 0000000..613f5a9
--- /dev/null
+++ 
b/mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/MailboxPathTest.java
@@ -0,0 +1,177 @@
+/****************************************************************
+ * 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.event.json.dtos;
+
+import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.apache.james.event.json.DTOs;
+import org.apache.james.event.json.JsonSerialize;
+import org.apache.james.mailbox.model.MailboxConstants;
+import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.model.TestId;
+import org.apache.james.mailbox.model.TestMessageId;
+import org.junit.jupiter.api.Test;
+
+import play.api.libs.json.JsError;
+import play.api.libs.json.Json;
+
+class MailboxPathTest {
+    private static final String MAILBOX_NAME = "mailboxName";
+    private static final MailboxPath MAILBOX_PATH = new 
MailboxPath(MailboxConstants.USER_NAMESPACE, "user", MAILBOX_NAME);
+    private static final JsonSerialize JSON_SERIALIZE = new JsonSerialize(new 
TestId.Factory(), new TestMessageId.Factory());
+
+    @Test
+    void mailboxPathShouldBeWellSerialized() {
+        
assertThatJson(JSON_SERIALIZE.mailboxPathWrites().writes(DTOs.MailboxPath$.MODULE$.fromJava(MAILBOX_PATH)).toString())
+            .isEqualTo(
+                "{" +
+                "  \"namespace\":\"#private\"," +
+                "  \"user\":\"user\"," +
+                "  \"name\":\"mailboxName\"" +
+                "}");
+    }
+
+    @Test
+    void mailboxPathWithNullUserShouldBeWellSerialized() {
+        
assertThatJson(JSON_SERIALIZE.mailboxPathWrites().writes(DTOs.MailboxPath$.MODULE$.fromJava(
+            new MailboxPath(MailboxConstants.USER_NAMESPACE, null, 
MAILBOX_NAME))).toString())
+            .isEqualTo(
+                "{" +
+                "  \"namespace\":\"#private\"," +
+                "  \"name\":\"mailboxName\"" +
+                "}");
+    }
+
+    @Test
+    void mailboxPathWithEmptyNamespaceShouldBeWellSerialized() {
+        
assertThatJson(JSON_SERIALIZE.mailboxPathWrites().writes(DTOs.MailboxPath$.MODULE$.fromJava(
+            new MailboxPath("", "user", MAILBOX_NAME))).toString())
+            .isEqualTo(
+                "{" +
+                "  \"namespace\":\"#private\"," +
+                "  \"user\":\"user\"," +
+                "  \"name\":\"mailboxName\"" +
+                "}");
+    }
+
+    @Test
+    void mailboxPathWithShouldBeWellDeSerialized() {
+        assertThat(JSON_SERIALIZE.mailboxPathReads().reads(Json.parse("{" +
+            "  \"namespace\":\"#private\"," +
+            "  \"user\":\"user\"," +
+            "  \"name\":\"mailboxName\"" +
+            "}")).get())
+            .isEqualTo(DTOs.MailboxPath$.MODULE$.fromJava(
+                new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", 
MAILBOX_NAME)));
+    }
+
+    @Test
+    void mailboxPathWithNullUserShouldBeWellDeSerialized() {
+        assertThat(JSON_SERIALIZE.mailboxPathReads().reads(Json.parse("{" +
+            "  \"namespace\":\"#private\"," +
+            "  \"user\":null," +
+            "  \"name\":\"mailboxName\"" +
+            "}")).get())
+            .isEqualTo(DTOs.MailboxPath$.MODULE$.fromJava(
+                new MailboxPath(MailboxConstants.USER_NAMESPACE, null, 
MAILBOX_NAME)));
+    }
+
+    @Test
+    void mailboxPathWithNoUserShouldBeWellDeSerialized() {
+        assertThat(JSON_SERIALIZE.mailboxPathReads().reads(Json.parse("{" +
+            "  \"namespace\":\"#private\"," +
+            "  \"name\":\"mailboxName\"" +
+            "}")).get())
+            .isEqualTo(DTOs.MailboxPath$.MODULE$.fromJava(
+                new MailboxPath(MailboxConstants.USER_NAMESPACE, null, 
MAILBOX_NAME)));
+    }
+
+    @Test
+    void mailboxPathDeserializationShouldFailWhenNoNamespace() {
+        assertThat(JSON_SERIALIZE.mailboxPathReads().reads(Json.parse("{" +
+            "  \"user\":\"user\"," +
+            "  \"name\":\"mailboxName\"" +
+            "}"))
+            .get().toJava())
+            .isEqualTo(new MailboxPath(MailboxConstants.USER_NAMESPACE, 
"user", MAILBOX_NAME));
+    }
+
+    @Test
+    void mailboxPathDeserializationShouldFailWhenNullNamespace() {
+        assertThat(JSON_SERIALIZE.mailboxPathReads().reads(Json.parse("{" +
+            "  \"namespace\":null," +
+            "  \"user\":\"user\"," +
+            "  \"name\":\"mailboxName\"" +
+            "}"))
+            .get().toJava())
+            .isEqualTo(new MailboxPath(MailboxConstants.USER_NAMESPACE, 
"user", MAILBOX_NAME));
+    }
+
+    @Test
+    void mailboxPathDeserializationShouldFailWhenLongNamespace() {
+        assertThat(JSON_SERIALIZE.mailboxPathReads().reads(Json.parse("{" +
+            "  \"namespace\":18," +
+            "  \"user\":\"user\"," +
+            "  \"name\":\"mailboxName\"" +
+            "}")))
+            .isInstanceOf(JsError.class);
+    }
+
+    @Test
+    void mailboxPathDeserializationShouldFailWhenLongUser() {
+        assertThat(JSON_SERIALIZE.mailboxPathReads().reads(Json.parse("{" +
+            "  \"namespace\":\"#private\"," +
+            "  \"user\":42," +
+            "  \"name\":\"mailboxName\"" +
+            "}")))
+            .isInstanceOf(JsError.class);
+    }
+
+    @Test
+    void mailboxPathDeserializationShouldFailWhenMissingMailboxName() {
+        assertThat(JSON_SERIALIZE.mailboxPathReads().reads(Json.parse("{" +
+            "  \"namespace\":\"#private\"," +
+            "  \"user\":\"user\"" +
+            "}")))
+            .isInstanceOf(JsError.class);
+    }
+
+    @Test
+    void mailboxPathDeserializationShouldFailWhenNullMailboxName() {
+        assertThat(JSON_SERIALIZE.mailboxPathReads().reads(Json.parse("{" +
+            "  \"namespace\":\"#private\"," +
+            "  \"user\":\"user\"," +
+            "  \"name\":null" +
+            "}")))
+            .isInstanceOf(JsError.class);
+    }
+
+    @Test
+    void mailboxPathDeserializationShouldFailWhenLongMailboxName() {
+        assertThat(JSON_SERIALIZE.mailboxPathReads().reads(Json.parse("{" +
+            "  \"namespace\":\"#private\"," +
+            "  \"user\":\"user\"," +
+            "  \"name\":42" +
+            "}")))
+            .isInstanceOf(JsError.class);
+    }
+
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to