This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 337606144f7aa832935bc0f78a846ae6e474cfd4
Author: Raphael Ouazana <[email protected]>
AuthorDate: Fri Nov 8 16:00:11 2019 +0100

    Remove pseudo-support for shared mailboxes (mailboxes with null user)
---
 .../apache/james/mailbox/model/MailboxPath.java    |  3 +-
 .../mailbox/model/search/MailboxQueryTest.java     | 42 -----------
 .../james/event/json/dtos/MailboxPathTest.java     | 32 --------
 .../james/mailbox/jpa/mail/JPAMailboxMapper.java   | 20 ++---
 .../store/mail/model/MailboxMapperTest.java        | 87 ++--------------------
 .../org/apache/james/imap/main/PathConverter.java  |  8 +-
 .../apache/james/imap/main/PathConverterTest.java  | 46 +-----------
 .../jmap/draft/model/mailbox/MailboxNamespace.java |  1 +
 8 files changed, 17 insertions(+), 222 deletions(-)

diff --git 
a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java 
b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
index 7c4b948..92cbde1 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
@@ -76,8 +76,7 @@ public class MailboxPath {
     }
 
     /**
-     * Get the name of the user who owns the mailbox. This can be null e.g. for
-     * shared mailboxes.
+     * Get the name of the user who owns the mailbox.
      */
     public String getUser() {
         return user;
diff --git 
a/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/MailboxQueryTest.java
 
b/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/MailboxQueryTest.java
index 82b121e..08c907f 100644
--- 
a/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/MailboxQueryTest.java
+++ 
b/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/MailboxQueryTest.java
@@ -130,18 +130,6 @@ public class MailboxQueryTest {
     }
 
     @Test
-    public void 
belongsToNamespaceAndUserShouldReturnTrueWithIdenticalMailboxesWithNullUser() {
-        MailboxPath base = new MailboxPath("namespace", null, "name");
-
-        MailboxQuery mailboxQuery = MailboxQuery.builder()
-            .userAndNamespaceFrom(base)
-            .build();
-
-        
assertThat(mailboxQuery.belongsToRequestedNamespaceAndUser(mailboxPath))
-            .isTrue();
-    }
-
-    @Test
     public void 
belongsToNamespaceAndUserShouldReturnTrueWithIdenticalMailboxesWithNullNamespace()
 {
         MailboxPath mailboxPath = new MailboxPath(null, "user", "name");
 
@@ -154,16 +142,6 @@ public class MailboxQueryTest {
     }
 
     @Test
-    public void 
belongsToNamespaceAndUserShouldReturnTrueWithMailboxWithSameNamespaceAndUserWithNullUser()
 {
-        MailboxQuery mailboxQuery = MailboxQuery.builder()
-            .userAndNamespaceFrom(new MailboxPath("namespace", null, "name"))
-            .build();
-
-        assertThat(mailboxQuery.belongsToRequestedNamespaceAndUser(new 
MailboxPath("namespace", null, "name")))
-            .isTrue();
-    }
-
-    @Test
     public void 
belongsToNamespaceAndUserShouldReturnTrueWithMailboxWithSameNamespaceAndUser() {
         MailboxQuery mailboxQuery = MailboxQuery.builder()
             .userAndNamespaceFrom(new MailboxPath("namespace", CURRENT_USER, 
"name"))
@@ -194,16 +172,6 @@ public class MailboxQueryTest {
     }
     
     @Test
-    public void 
belongsToNamespaceAndUserShouldReturnFalseWithOneOfTheUserNull() {
-        MailboxQuery mailboxQuery = MailboxQuery.builder()
-            .userAndNamespaceFrom(new MailboxPath("namespace", CURRENT_USER, 
"name"))
-            .build();
-
-        assertThat(mailboxQuery.belongsToRequestedNamespaceAndUser(new 
MailboxPath("namespace", null, "name")))
-            .isFalse();
-    }
-
-    @Test
     public void belongsToNamespaceAndUserShouldReturnFalseWhenDifferentUser() {
         MailboxQuery mailboxQuery = MailboxQuery.builder()
             .userAndNamespaceFrom(new MailboxPath("namespace", CURRENT_USER, 
"name"))
@@ -212,14 +180,4 @@ public class MailboxQueryTest {
         assertThat(mailboxQuery.belongsToRequestedNamespaceAndUser(new 
MailboxPath("namespace", "other", "name")))
             .isFalse();
     }
-
-    @Test
-    public void 
belongsToNamespaceAndUserShouldReturnFalseIfNamespaceAreDifferentWithNullUser() 
{
-        MailboxQuery mailboxQuery = MailboxQuery.builder()
-            .userAndNamespaceFrom(new MailboxPath("namespace", null, "name"))
-            .build();
-
-        assertThat(mailboxQuery.belongsToRequestedNamespaceAndUser(new 
MailboxPath("namespace2", null, "name")))
-            .isFalse();
-    }
 }
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
index a47e582..a35e664 100644
--- 
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
@@ -47,17 +47,6 @@ class MailboxPathTest {
     }
 
     @Test
-    void mailboxPathWithNullUserShouldBeWellSerialized() {
-        
assertThatJson(DTO_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(DTO_JSON_SERIALIZE.mailboxPathWrites().writes(DTOs.MailboxPath$.MODULE$.fromJava(
             new MailboxPath("", "user", MAILBOX_NAME))).toString())
@@ -81,27 +70,6 @@ class MailboxPathTest {
     }
 
     @Test
-    void mailboxPathWithNullUserShouldBeWellDeSerialized() {
-        assertThat(DTO_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(DTO_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(DTO_JSON_SERIALIZE.mailboxPathReads().reads(Json.parse("{" +
             "  \"user\":\"user\"," +
diff --git 
a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
 
b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
index d342649..ca633e7 100644
--- 
a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
+++ 
b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
@@ -202,16 +202,10 @@ public class JPAMailboxMapper extends 
JPATransactionalMapper implements MailboxM
     }
 
     private TypedQuery<JPAMailbox> 
findMailboxWithPathLikeTypedQuery(MailboxPath path) {
-        if (path.getUser() == null) {
-            return 
getEntityManager().createNamedQuery("findMailboxWithNameLike", JPAMailbox.class)
-                .setParameter("nameParam", path.getName())
-                .setParameter("namespaceParam", path.getNamespace());
-        } else {
-            return 
getEntityManager().createNamedQuery("findMailboxWithNameLikeWithUser", 
JPAMailbox.class)
-                .setParameter("nameParam", path.getName())
-                .setParameter("namespaceParam", path.getNamespace())
-                .setParameter("userParam", path.getUser());
-        }
+        return 
getEntityManager().createNamedQuery("findMailboxWithNameLikeWithUser", 
JPAMailbox.class)
+            .setParameter("nameParam", path.getName())
+            .setParameter("namespaceParam", path.getNamespace())
+            .setParameter("userParam", path.getUser().asId());
     }
 
     public void deleteAllMemberships() throws MailboxException {
@@ -234,11 +228,7 @@ public class JPAMailboxMapper extends 
JPATransactionalMapper implements MailboxM
     public boolean hasChildren(Mailbox mailbox, char delimiter) throws 
MailboxException, MailboxNotFoundException {
         final String name = mailbox.getName() + delimiter + SQL_WILDCARD_CHAR; 
         final Long numberOfChildMailboxes;
-        if (mailbox.getUser() == null) {
-            numberOfChildMailboxes = (Long) 
getEntityManager().createNamedQuery("countMailboxesWithNameLike").setParameter("nameParam",
 name).setParameter("namespaceParam", mailbox.getNamespace()).getSingleResult();
-        } else {
-            numberOfChildMailboxes = (Long) 
getEntityManager().createNamedQuery("countMailboxesWithNameLikeWithUser").setParameter("nameParam",
 name).setParameter("namespaceParam", 
mailbox.getNamespace()).setParameter("userParam", 
mailbox.getUser()).getSingleResult();
-        }
+        numberOfChildMailboxes = (Long) 
getEntityManager().createNamedQuery("countMailboxesWithNameLikeWithUser").setParameter("nameParam",
 name).setParameter("namespaceParam", 
mailbox.getNamespace()).setParameter("userParam", 
mailbox.getUser()).getSingleResult();
         return numberOfChildMailboxes != null && numberOfChildMailboxes > 0;
     }
 
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java
index afca3fd..06a1909 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java
@@ -60,18 +60,6 @@ public abstract class MailboxMapperTest {
     private Mailbox bobyMailbox;
     private MailboxPath bobyMailboxPath;
     private Mailbox bobInboxMailbox;
-    private MailboxPath esnDevGroupInboxPath;
-    private Mailbox esnDevGroupInboxMailbox;
-    private MailboxPath esnDevGroupHublinPath;
-    private Mailbox esnDevGroupHublinMailbox;
-    private MailboxPath esnDevGroupJamesPath;
-    private Mailbox esnDevGroupJamesMailbox;
-    private MailboxPath obmTeamGroupInboxPath;
-    private Mailbox obmTeamGroupInboxMailbox;
-    private MailboxPath obmTeamGroupOPushPath;
-    private Mailbox obmTeamGroupOPushMailbox;
-    private MailboxPath obmTeamGroupRoundCubePath;
-    private Mailbox obmTeamGroupRoundCubeMailbox;
     private MailboxPath bobDifferentNamespacePath;
     private Mailbox bobDifferentNamespaceMailbox;
 
@@ -111,20 +99,12 @@ public abstract class MailboxMapperTest {
     }
 
     @Test
-    public void saveWithNullUserShouldPersistTheMailbox() throws 
MailboxException {
-        mailboxMapper.save(esnDevGroupInboxMailbox);
-        
MailboxAssert.assertThat(mailboxMapper.findMailboxByPath(esnDevGroupInboxPath)).isEqualTo(esnDevGroupInboxMailbox);
-    }
-
-    @Test
     public void listShouldRetrieveAllMailbox() throws MailboxException {
         saveAll();
         List<Mailbox> mailboxes = mailboxMapper.list();
 
         assertMailboxes(mailboxes)
             .containOnly(benwaInboxMailbox, benwaWorkMailbox, 
benwaWorkTodoMailbox, benwaPersoMailbox, benwaWorkDoneMailbox, 
-                esnDevGroupInboxMailbox, esnDevGroupHublinMailbox, 
esnDevGroupJamesMailbox, 
-                obmTeamGroupInboxMailbox, obmTeamGroupOPushMailbox, 
obmTeamGroupRoundCubeMailbox, 
                 bobyMailbox, bobDifferentNamespaceMailbox, bobInboxMailbox);
     }
     
@@ -141,18 +121,6 @@ public abstract class MailboxMapperTest {
     }
 
     @Test
-    public void hasChildrenWithNullUserShouldReturnFalseWhenNoChildrenExists() 
throws MailboxException {
-        saveAll();
-        assertThat(mailboxMapper.hasChildren(esnDevGroupHublinMailbox, 
DELIMITER)).isFalse();
-    }
-
-    @Test
-    public void hasChildrenWithNullUserShouldReturnTrueWhenChildrenExists() 
throws MailboxException {
-        saveAll();
-        assertThat(mailboxMapper.hasChildren(esnDevGroupInboxMailbox, 
DELIMITER)).isTrue();
-    }
-
-    @Test
     public void hasChildrenShouldNotBeAcrossUsersAndNamespace() throws 
MailboxException {
         saveAll();
         assertThat(mailboxMapper.hasChildren(bobInboxMailbox, '.')).isFalse();
@@ -177,15 +145,6 @@ public abstract class MailboxMapperTest {
     }
 
     @Test
-    public void deleteWithNullUserShouldEraseTheGivenMailbox() throws 
MailboxException {
-        saveAll();
-        mailboxMapper.delete(esnDevGroupJamesMailbox);
-
-        assertThatThrownBy(() -> 
mailboxMapper.findMailboxByPath(esnDevGroupJamesPath))
-            .isInstanceOf(MailboxNotFoundException.class);
-    }
-
-    @Test
     public void findMailboxWithPathLikeWithChildRegexShouldRetrieveChildren() 
throws MailboxException {
         saveAll();
         MailboxPath regexPath = new MailboxPath(benwaWorkPath.getNamespace(), 
benwaWorkPath.getUser(), benwaWorkPath.getName() + WILDCARD);
@@ -195,36 +154,20 @@ public abstract class MailboxMapperTest {
     }
 
     @Test
-    public void 
findMailboxWithPathLikeWithNullUserWithChildRegexShouldRetrieveChildren() 
throws MailboxException {
-        saveAll();
-        MailboxPath regexPath = new 
MailboxPath(obmTeamGroupInboxPath.getNamespace(), 
obmTeamGroupInboxPath.getUser(), obmTeamGroupInboxPath.getName() + WILDCARD);
-
-        List<Mailbox> mailboxes = 
mailboxMapper.findMailboxWithPathLike(regexPath);
-
-        assertMailboxes(mailboxes).containOnly(obmTeamGroupInboxMailbox, 
obmTeamGroupOPushMailbox, obmTeamGroupRoundCubeMailbox);
-    }
-    
-    @Test
     public void 
findMailboxWithPathLikeWithRegexShouldRetrieveCorrespondingMailbox() throws 
MailboxException {
         saveAll();
-        MailboxPath regexPath = new MailboxPath(benwaInboxPath.getNamespace(), 
benwaInboxPath.getUser(), WILDCARD + "X");
+        MailboxQuery.UserBound mailboxQuery = MailboxQuery.builder()
+            .userAndNamespaceFrom(benwaWorkPath)
+            .expression(new ExactName("INBOX"))
+            .build()
+            .asUserBound();
 
-        List<Mailbox> mailboxes = 
mailboxMapper.findMailboxWithPathLike(regexPath);
+        List<Mailbox> mailboxes = 
mailboxMapper.findMailboxWithPathLike(mailboxQuery);
 
         assertMailboxes(mailboxes).containOnly(benwaInboxMailbox);
     }
 
     @Test
-    public void 
findMailboxWithPathLikeWithNullUserWithRegexShouldRetrieveCorrespondingMailbox()
 throws MailboxException {
-        saveAll();
-        MailboxPath regexPath = new 
MailboxPath(esnDevGroupInboxPath.getNamespace(), 
esnDevGroupInboxPath.getUser(), WILDCARD + "X");
-
-        List<Mailbox> mailboxes = 
mailboxMapper.findMailboxWithPathLike(regexPath);
-
-        assertMailboxes(mailboxes).containOnly(esnDevGroupInboxMailbox);
-    }
-
-    @Test
     public void findMailboxWithPathLikeShouldEscapeMailboxName() throws 
MailboxException {
         saveAll();
         MailboxPath regexPath = new MailboxPath(benwaInboxPath.getNamespace(), 
benwaInboxPath.getUser(), "INB?X");
@@ -256,12 +199,6 @@ public abstract class MailboxMapperTest {
         bobInboxPath = MailboxPath.forUser("bob", "INBOX");
         bobyMailboxPath = MailboxPath.forUser("boby", "INBOX.that.is.a.trick");
         bobDifferentNamespacePath = new MailboxPath("#private_bob", "bob", 
"INBOX.bob");
-        esnDevGroupInboxPath = new MailboxPath("#community_ESN_DEV", null, 
"INBOX");
-        esnDevGroupHublinPath = new MailboxPath("#community_ESN_DEV", null, 
"INBOX" + DELIMITER + "hublin");
-        esnDevGroupJamesPath = new MailboxPath("#community_ESN_DEV", null, 
"INBOX" + DELIMITER + "james");
-        obmTeamGroupInboxPath = new MailboxPath("#community_OBM_Core_Team", 
null, "INBOX");
-        obmTeamGroupOPushPath = new MailboxPath("#community_OBM_Core_Team", 
null, "INBOX" + DELIMITER + "OPush");
-        obmTeamGroupRoundCubePath = new 
MailboxPath("#community_OBM_Core_Team", null, "INBOX" + DELIMITER + 
"roundCube");
 
         benwaInboxMailbox = createMailbox(benwaInboxPath);
         benwaWorkMailbox = createMailbox(benwaWorkPath);
@@ -269,12 +206,6 @@ public abstract class MailboxMapperTest {
         benwaPersoMailbox = createMailbox(benwaPersoPath);
         benwaWorkDoneMailbox = createMailbox(benwaWorkDonePath);
         bobInboxMailbox = createMailbox(bobInboxPath);
-        esnDevGroupInboxMailbox = createMailbox(esnDevGroupInboxPath);
-        esnDevGroupHublinMailbox = createMailbox(esnDevGroupHublinPath);
-        esnDevGroupJamesMailbox = createMailbox(esnDevGroupJamesPath);
-        obmTeamGroupInboxMailbox = createMailbox(obmTeamGroupInboxPath);
-        obmTeamGroupOPushMailbox = createMailbox(obmTeamGroupOPushPath);
-        obmTeamGroupRoundCubeMailbox = 
createMailbox(obmTeamGroupRoundCubePath);
         bobyMailbox = createMailbox(bobyMailboxPath);
         bobDifferentNamespaceMailbox = 
createMailbox(bobDifferentNamespacePath);
     }
@@ -285,12 +216,6 @@ public abstract class MailboxMapperTest {
         mailboxMapper.save(benwaWorkTodoMailbox);
         mailboxMapper.save(benwaPersoMailbox);
         mailboxMapper.save(benwaWorkDoneMailbox);
-        mailboxMapper.save(esnDevGroupInboxMailbox);
-        mailboxMapper.save(esnDevGroupHublinMailbox);
-        mailboxMapper.save(esnDevGroupJamesMailbox);
-        mailboxMapper.save(obmTeamGroupInboxMailbox);
-        mailboxMapper.save(obmTeamGroupOPushMailbox);
-        mailboxMapper.save(obmTeamGroupRoundCubeMailbox);
         mailboxMapper.save(bobyMailbox);
         mailboxMapper.save(bobDifferentNamespaceMailbox);
         mailboxMapper.save(bobInboxMailbox);
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/main/PathConverter.java 
b/protocols/imap/src/main/java/org/apache/james/imap/main/PathConverter.java
index d348fbc..e7d5ff6 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/main/PathConverter.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/main/PathConverter.java
@@ -48,7 +48,7 @@ public class PathConverter {
 
     public MailboxPath buildFullPath(String mailboxName) {
         if (Strings.isNullOrEmpty(mailboxName)) {
-            return buildDefaultPath();
+            return buildRelativePath("");
         }
         if (isAbsolute(mailboxName)) {
             return buildAbsolutePath(mailboxName);
@@ -57,10 +57,6 @@ public class PathConverter {
         }
     }
 
-    private MailboxPath buildDefaultPath() {
-        return new MailboxPath("", "", "");
-    }
-
     private boolean isAbsolute(String mailboxName) {
         Preconditions.checkArgument(!Strings.isNullOrEmpty(mailboxName));
         return mailboxName.charAt(0) == MailboxConstants.NAMESPACE_PREFIX_CHAR;
@@ -82,7 +78,7 @@ public class PathConverter {
         if (namespace.equals(MailboxConstants.USER_NAMESPACE)) {
             return ImapSessionUtils.getUserName(session);
         }
-        return null;
+        throw new DeniedAccessOnSharedMailboxException();
     }
 
     private MailboxPath buildMailboxPath(String namespace, String user, String 
mailboxName) {
diff --git 
a/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java
 
b/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java
index 893e59b..6395098 100644
--- 
a/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java
+++ 
b/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java
@@ -30,7 +30,6 @@ import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -56,13 +55,13 @@ public class PathConverterTest {
     @Test
     public void buildFullPathShouldAcceptNull() {
         assertThat(pathConverter.buildFullPath(null))
-            .isEqualTo(new MailboxPath("", "", ""));
+            .isEqualTo(new MailboxPath("", USERNAME, ""));
     }
 
     @Test
     public void buildPathShouldAcceptEmpty() {
         assertThat(pathConverter.buildFullPath(""))
-            .isEqualTo(new MailboxPath("", "", ""));
+            .isEqualTo(new MailboxPath("", USERNAME, ""));
     }
 
     @Test
@@ -72,41 +71,18 @@ public class PathConverterTest {
             .isEqualTo(MailboxPath.forUser(USERNAME, mailboxName));
     }
 
-    @Ignore("Shared mailbox is not supported yet")
-    @Test
-    public void buildFullPathShouldAcceptNamespacePrefix() {
-        assertThat(pathConverter.buildFullPath("#"))
-            .isEqualTo(new MailboxPath("#", null, ""));
-    }
-
     @Test
     public void buildFullPathShouldAcceptUserNamespace() {
         
assertThat(pathConverter.buildFullPath(MailboxConstants.USER_NAMESPACE))
             .isEqualTo(MailboxPath.forUser(USERNAME, ""));
     }
 
-    @Ignore("Shared mailbox is not supported yet")
-    @Test
-    public void buildFullPathShouldAcceptNamespaceAlone() {
-        String namespace = "#any";
-        assertThat(pathConverter.buildFullPath(namespace))
-            .isEqualTo(new MailboxPath(namespace, null, ""));
-    }
-
     @Test
     public void buildFullPathShouldAcceptUserNamespaceAndDelimiter() {
         assertThat(pathConverter.buildFullPath(MailboxConstants.USER_NAMESPACE 
+ PATH_DELIMITER))
             .isEqualTo(MailboxPath.forUser(USERNAME, ""));
     }
 
-    @Ignore("Shared mailbox is not supported yet")
-    @Test
-    public void buildFullPathShouldAcceptNamespaceAndDelimiter() {
-        String namespace = "#any";
-        assertThat(pathConverter.buildFullPath(namespace + PATH_DELIMITER))
-            .isEqualTo(new MailboxPath(namespace, null, ""));
-    }
-
     @Test
     public void buildFullPathShouldAcceptFullAbsoluteUserPath() {
         String mailboxName = "mailboxName";
@@ -114,15 +90,6 @@ public class PathConverterTest {
             .isEqualTo(MailboxPath.forUser(USERNAME, mailboxName));
     }
 
-    @Ignore("Shared mailbox is not supported yet")
-    @Test
-    public void buildFullPathShouldAcceptFullAbsolutePath() {
-        String namespace = "#any";
-        String mailboxName = "mailboxName";
-        assertThat(pathConverter.buildFullPath(namespace + PATH_DELIMITER + 
mailboxName))
-            .isEqualTo(new MailboxPath(namespace, null, mailboxName));
-    }
-
     @Test
     public void buildFullPathShouldAcceptRelativePathWithSubFolder() {
         String mailboxName = "mailboxName" + PATH_DELIMITER + "subFolder";
@@ -137,15 +104,6 @@ public class PathConverterTest {
             .isEqualTo(MailboxPath.forUser(USERNAME, mailboxName));
     }
 
-    @Ignore("Shared mailbox is not supported yet")
-    @Test
-    public void buildFullPathShouldAcceptAbsolutePathWithSubFolder() {
-        String namespace = "#any";
-        String mailboxName = "mailboxName.subFolder";
-        assertThat(pathConverter.buildFullPath(namespace + PATH_DELIMITER + 
mailboxName))
-            .isEqualTo(new MailboxPath(namespace, null, mailboxName));
-    }
-
     @Test
     public void buildFullPathShouldDenyMailboxPathNotBelongingToTheUser() {
         expectedException.expect(DeniedAccessOnSharedMailboxException.class);
diff --git 
a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/mailbox/MailboxNamespace.java
 
b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/mailbox/MailboxNamespace.java
index a0447b3..1a730f1 100644
--- 
a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/mailbox/MailboxNamespace.java
+++ 
b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/mailbox/MailboxNamespace.java
@@ -42,6 +42,7 @@ public class MailboxNamespace {
     }
 
     public static MailboxNamespace delegated(String owner) {
+        Preconditions.checkArgument(owner != null);
         Preconditions.checkArgument(!StringUtils.isBlank(owner));
         return new MailboxNamespace(Type.Delegated, Optional.of(owner));
     }


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

Reply via email to