MAILBOX-307 Allow full ACL reset operations

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

Branch: refs/heads/master
Commit: 5accac0a31e96a110629a34d6e05a3704735ddf9
Parents: d87584e
Author: benwa <btell...@linagora.com>
Authored: Mon Sep 25 16:16:40 2017 +0700
Committer: Matthieu Baechler <matth...@apache.org>
Committed: Fri Sep 29 09:20:40 2017 +0200

----------------------------------------------------------------------
 .../apache/james/mailbox/MailboxManager.java    |  8 +++++
 .../mailbox/caching/CachingMailboxMapper.java   |  5 +++
 .../cassandra/mail/CassandraACLMapper.java      | 16 +++++++--
 .../cassandra/mail/CassandraMailboxMapper.java  | 15 +++++++--
 .../mailbox/hbase/mail/HBaseMailboxMapper.java  |  5 +++
 .../mailbox/jcr/mail/JCRMailboxMapper.java      |  5 +++
 .../mailbox/jpa/mail/JPAMailboxMapper.java      |  5 +++
 .../jpa/mail/TransactionalMailboxMapper.java    |  6 ++++
 .../maildir/mail/MaildirMailboxMapper.java      |  7 ++++
 .../inmemory/mail/InMemoryMailboxMapper.java    |  5 +++
 .../mailbox/store/StoreMailboxManager.java      |  7 ++++
 .../james/mailbox/store/mail/MailboxMapper.java |  8 +++++
 .../store/TestMailboxSessionMapperFactory.java  |  5 +++
 .../store/mail/model/MailboxMapperACLTest.java  | 35 ++++++++++++++++++++
 .../base/MailboxEventAnalyserTest.java          | 10 +++++-
 15 files changed, 136 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
----------------------------------------------------------------------
diff --git 
a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java 
b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
index 0a34607..2963ad6 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
@@ -397,6 +397,14 @@ public interface MailboxManager extends RequestAware, 
MailboxListenerSupport {
 
 
     /**
+     * Reset the Mailbox ACL of the designated mailbox.
+     *
+     * @param mailboxACL New ACL value
+     * @throws UnsupportedRightException
+     */
+    void resetRights(MailboxPath mailboxPath, MailboxACL mailboxACL, 
MailboxSession session) throws MailboxException;
+
+    /**
      * Return a unmodifiable {@link List} of {@link MailboxPath} objects
      * 
      * @param session

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxMapper.java
 
b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxMapper.java
index 2c326c4..737a33f 100644
--- 
a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxMapper.java
+++ 
b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxMapper.java
@@ -110,6 +110,11 @@ public class CachingMailboxMapper implements MailboxMapper 
{
                mailbox.setACL(mailbox.getACL().apply(mailboxACLCommand));
        }
 
+       @Override
+       public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws 
MailboxException {
+               mailbox.setACL(mailboxACL);
+       }
+
        private void invalidate(Mailbox mailbox) {
                cache.invalidate(mailbox);
        }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
index 9a951a2..f7df7d5 100644
--- 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
+++ 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
@@ -53,6 +53,8 @@ import com.google.common.base.Preconditions;
 import com.google.common.base.Throwables;
 
 public class CassandraACLMapper {
+    private static final Logger LOG = 
LoggerFactory.getLogger(CassandraACLMapper.class);
+    public static final int INITIAL_VALUE = 0;
 
     @FunctionalInterface
     public interface CodeInjector {
@@ -65,8 +67,6 @@ public class CassandraACLMapper {
     private final int maxRetry;
     private final CodeInjector codeInjector;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(CassandraACLMapper.class);
-
     public CassandraACLMapper(CassandraId cassandraId, Session session, 
CassandraAsyncExecutor cassandraAsyncExecutor, CassandraConfiguration 
cassandraConfiguration) {
         this(cassandraId, session, cassandraAsyncExecutor, 
cassandraConfiguration, () -> {});
     }
@@ -107,6 +107,18 @@ public class CassandraACLMapper {
         }
     }
 
+    public void resetACL(MailboxACL mailboxACL) {
+        try {
+            session.execute(
+                insertInto(CassandraACLTable.TABLE_NAME)
+                    .value(CassandraACLTable.ID, cassandraId.asUuid())
+                    .value(CassandraACLTable.ACL, 
SimpleMailboxACLJsonConverter.toJson(mailboxACL))
+                    .value(CassandraACLTable.VERSION, INITIAL_VALUE));
+        } catch (JsonProcessingException e) {
+            throw Throwables.propagate(e);
+        }
+    }
+
     private MailboxACL applyCommandOnEmptyACL(MailboxACL.MailboxACLCommand 
command) {
         try {
             return SimpleMailboxACL.EMPTY.apply(command);

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
index c170a73..81b43e7 100644
--- 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
+++ 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
@@ -27,6 +27,7 @@ import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CompletionException;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
+
 import javax.inject.Inject;
 
 import org.apache.commons.lang3.StringUtils;
@@ -46,13 +47,13 @@ import 
org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
 import org.apache.james.util.CompletableFutureUtil;
 import org.apache.james.util.FluentFutureStream;
 import org.apache.james.util.OptionalUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.datastax.driver.core.Session;
 import com.datastax.driver.core.exceptions.InvalidQueryException;
 import com.github.steveash.guavate.Guavate;
 import com.google.common.base.Preconditions;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class CassandraMailboxMapper implements MailboxMapper {
 
@@ -205,7 +206,15 @@ public class CassandraMailboxMapper implements 
MailboxMapper {
     @Override
     public void updateACL(Mailbox mailbox, MailboxACL.MailboxACLCommand 
mailboxACLCommand) throws MailboxException {
         CassandraId cassandraId = (CassandraId) mailbox.getMailboxId();
-        new CassandraACLMapper(cassandraId, session, cassandraAsyncExecutor, 
cassandraConfiguration).updateACL(mailboxACLCommand);
+        new CassandraACLMapper(cassandraId, session, cassandraAsyncExecutor, 
cassandraConfiguration)
+            .updateACL(mailboxACLCommand);
+    }
+
+    @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws 
MailboxException {
+        CassandraId cassandraId = (CassandraId) mailbox.getMailboxId();
+        new CassandraACLMapper(cassandraId, session, cassandraAsyncExecutor, 
cassandraConfiguration)
+            .resetACL(mailboxACL);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java
 
b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java
index 4b205fe..7675e4a 100644
--- 
a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java
+++ 
b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java
@@ -417,4 +417,9 @@ public class HBaseMailboxMapper extends 
HBaseNonTransactionalMapper implements M
     public void updateACL(Mailbox mailbox, MailboxACL.MailboxACLCommand 
mailboxACLCommand) throws MailboxException {
         mailbox.setACL(mailbox.getACL().apply(mailboxACLCommand));
     }
+
+    @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws 
MailboxException {
+        mailbox.setACL(mailboxACL);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
 
b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
index 901a268..67f68c4 100644
--- 
a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
+++ 
b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
@@ -254,4 +254,9 @@ public class JCRMailboxMapper extends 
AbstractJCRScalingMapper implements Mailbo
     public void updateACL(Mailbox mailbox, MailboxACL.MailboxACLCommand 
mailboxACLCommand) throws MailboxException {
         mailbox.setACL(mailbox.getACL().apply(mailboxACLCommand));
     }
+
+    @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws 
MailboxException {
+        mailbox.setACL(mailboxACL);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
----------------------------------------------------------------------
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 a6a7abe..1f14941 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
@@ -224,4 +224,9 @@ public class JPAMailboxMapper extends 
JPATransactionalMapper implements MailboxM
     public void updateACL(Mailbox mailbox, MailboxACL.MailboxACLCommand 
mailboxACLCommand) throws MailboxException {
         mailbox.setACL(mailbox.getACL().apply(mailboxACLCommand));
     }
+
+    @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws 
MailboxException {
+        mailbox.setACL(mailboxACL);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
 
b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
index f828dfd..e9a0186 100644
--- 
a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
+++ 
b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
@@ -24,6 +24,7 @@ import java.util.List;
 import org.apache.commons.lang.NotImplementedException;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
+import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxACL.MailboxACLCommand;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -84,6 +85,11 @@ public class TransactionalMailboxMapper implements 
MailboxMapper {
     }
 
     @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws 
MailboxException {
+        wrapped.resetACL(mailbox, mailboxACL);
+    }
+
+    @Override
     public List<Mailbox> list() throws MailboxException {
         return wrapped.list();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
 
b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
index e24e4c7..164369a 100644
--- 
a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
+++ 
b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
@@ -339,4 +339,11 @@ public class MaildirMailboxMapper extends 
NonTransactionalMapper implements Mail
         folder.setACL(session, newACL);
         mailbox.setACL(newACL);
     }
+
+    @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws 
MailboxException {
+        MaildirFolder folder = maildirStore.createMaildirFolder(mailbox);
+        folder.setACL(session, mailboxACL);
+        mailbox.setACL(mailboxACL);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
 
b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
index 5d57d6c..918be78 100644
--- 
a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
+++ 
b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
@@ -158,4 +158,9 @@ public class InMemoryMailboxMapper implements MailboxMapper 
{
     public void updateACL(Mailbox mailbox, MailboxACL.MailboxACLCommand 
mailboxACLCommand) throws MailboxException{
         
mailboxesByPath.get(mailbox.generateAssociatedPath()).setACL(mailbox.getACL().apply(mailboxACLCommand));
     }
+
+    @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws 
MailboxException {
+        
mailboxesByPath.get(mailbox.generateAssociatedPath()).setACL(mailboxACL);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
index a9398df..16391f9 100644
--- 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
+++ 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
@@ -822,6 +822,13 @@ public class StoreMailboxManager implements MailboxManager 
{
         final Mailbox mailbox = mapper.findMailboxByPath(mailboxPath);
         mapper.execute(Mapper.toTransaction(() -> mapper.updateACL(mailbox, 
mailboxACLCommand)));
     }
+    
+    @Override
+    public void resetRights(MailboxPath mailboxPath, MailboxACL 
mailboxACLCommand, MailboxSession session) throws MailboxException {
+        final MailboxMapper mapper = 
mailboxSessionMapperFactory.getMailboxMapper(session);
+        final Mailbox mailbox = mapper.findMailboxByPath(mailboxPath);
+        mapper.execute(Mapper.toTransaction(() -> mapper.resetACL(mailbox, 
mailboxACLCommand)));
+    }
 
     @Override
     public List<MailboxAnnotation> getAllAnnotations(MailboxPath mailboxPath, 
MailboxSession session) throws MailboxException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java
 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java
index f737328..bebf176 100644
--- 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java
+++ 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java
@@ -105,6 +105,14 @@ public interface MailboxMapper extends Mapper {
     void updateACL(Mailbox mailbox, MailboxACL.MailboxACLCommand 
mailboxACLCommand) throws MailboxException;
 
     /**
+     * Reset the ACL of the stored mailbox.
+     *
+     * @param mailbox Mailbox for whom we want to update ACL
+     * @param mailboxACL New value of the ACL for this mailbox
+     */
+    void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws 
MailboxException;
+
+    /**
      * Return a unmodifable {@link List} of all {@link Mailbox} 
      * 
      * @return mailboxList

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java
index e187de0..63dd590 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java
@@ -144,6 +144,11 @@ public class TestMailboxSessionMapperFactory extends 
MailboxSessionMapperFactory
             }
 
             @Override
+            public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) 
throws MailboxException {
+                throw new NotImplementedException();
+            }
+
+            @Override
             public List<Mailbox> list() throws MailboxException {
                 throw new NotImplementedException();
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
index fe5b593..8ba8e8c 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
@@ -247,6 +247,41 @@ public abstract class MailboxMapperACLTest {
             .containsEntry(key, finalRights);
     }
 
+    @Test
+    public void resetAclShouldReplaceStoredAcl() throws MailboxException {
+        SimpleMailboxACL.SimpleMailboxACLEntryKey key = new 
SimpleMailboxACL.SimpleMailboxACLEntryKey("user", MailboxACL.NameType.user, 
NEGATIVE);
+        SimpleMailboxACL.Rfc4314Rights rights = new 
SimpleMailboxACL.Rfc4314Rights("asew");
+        SimpleMailboxACL.Rfc4314Rights newRights = new 
SimpleMailboxACL.Rfc4314Rights("skate");
+        mailboxMapper.updateACL(benwaInboxMailbox,
+            new SimpleMailboxACL.SimpleMailboxACLCommand(key,
+                MailboxACL.EditMode.REPLACE,
+                rights));
+        mailboxMapper.resetACL(benwaInboxMailbox,
+            new SimpleMailboxACL(ImmutableMap.of(key, newRights)));
+
+        assertThat(
+            mailboxMapper.findMailboxById(benwaInboxMailbox.getMailboxId())
+                .getACL()
+                .getEntries())
+            .hasSize(1)
+            .containsEntry(key, newRights);
+    }
+    
+    @Test
+    public void resetAclShouldInitializeStoredAcl() throws MailboxException {
+        SimpleMailboxACL.SimpleMailboxACLEntryKey key = new 
SimpleMailboxACL.SimpleMailboxACLEntryKey("user", MailboxACL.NameType.user, 
NEGATIVE);
+        SimpleMailboxACL.Rfc4314Rights rights = new 
SimpleMailboxACL.Rfc4314Rights("skate");
+        mailboxMapper.resetACL(benwaInboxMailbox,
+            new SimpleMailboxACL(ImmutableMap.of(key, rights)));
+
+        assertThat(
+            mailboxMapper.findMailboxById(benwaInboxMailbox.getMailboxId())
+                .getACL()
+                .getEntries())
+            .hasSize(1)
+            .containsEntry(key, rights);
+    }
+
     private SimpleMailbox createMailbox(MailboxPath mailboxPath) {
         SimpleMailbox mailbox = new SimpleMailbox(mailboxPath, UID_VALIDITY);
         mailbox.setMailboxId(mapperProvider.generateId());

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
----------------------------------------------------------------------
diff --git 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
index ae63f9f..1894ce4 100644
--- 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
+++ 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Collection;
@@ -33,8 +34,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+
 import javax.mail.Flags;
 
+import org.apache.commons.lang.NotImplementedException;
 import org.apache.james.imap.api.ImapSessionState;
 import org.apache.james.imap.api.ImapSessionUtils;
 import org.apache.james.imap.api.process.ImapLineHandler;
@@ -50,6 +53,7 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.ComposedMessageId;
 import org.apache.james.mailbox.model.Content;
 import org.apache.james.mailbox.model.Headers;
+import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxACL.MailboxACLCommand;
 import org.apache.james.mailbox.model.MailboxACL.MailboxACLEntryKey;
 import org.apache.james.mailbox.model.MailboxACL.MailboxACLRight;
@@ -74,7 +78,6 @@ import org.apache.james.mailbox.model.TestId;
 import org.apache.james.mailbox.model.UpdatedFlags;
 import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
 import org.junit.Test;
-import org.apache.commons.lang.NotImplementedException;
 
 import com.google.common.collect.ImmutableList;
 
@@ -379,6 +382,11 @@ public class MailboxEventAnalyserTest {
         }
 
         @Override
+        public void resetRights(MailboxPath mailboxPath, MailboxACL 
mailboxACL, MailboxSession session) throws MailboxException {
+            throw new NotImplementedException("Not implemented");
+        }
+
+        @Override
         public List<MailboxAnnotation> getAllAnnotations(MailboxPath 
mailboxPath, MailboxSession session)
                 throws MailboxException {
             return null;


---------------------------------------------------------------------
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