MAILBOX-307 Correct error while removing rights on a non existing key
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/998446bc Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/998446bc Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/998446bc Branch: refs/heads/master Commit: 998446bc1df0c6cd4fc6faf39afcde3cf51c71ef Parents: 43887f4 Author: benwa <btell...@linagora.com> Authored: Thu Sep 28 15:18:52 2017 +0700 Committer: Matthieu Baechler <matth...@apache.org> Committed: Fri Sep 29 09:20:41 2017 +0200 ---------------------------------------------------------------------- .../apache/james/mailbox/model/MailboxACL.java | 12 +++++---- .../james/mailbox/model/MailboxACLTest.java | 27 +++++++++----------- 2 files changed, 19 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/998446bc/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java index b4c9d2e..711f95c 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java @@ -740,11 +740,13 @@ public class MailboxACL { .filter(pair -> pair.getValue() != null && !pair.getValue().isEmpty()) .collect(Guavate.toImmutableMap(Pair::getKey, Pair::getValue))); } else { - return new MailboxACL( - ImmutableMap.<EntryKey, Rfc4314Rights>builder() - .putAll(entries) - .put(key, replacement) - .build()); + return Optional.ofNullable(replacement) + .map(replacementValue -> new MailboxACL( + ImmutableMap.<EntryKey, Rfc4314Rights>builder() + .putAll(entries) + .put(key, replacementValue) + .build())) + .orElse(this); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/998446bc/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxACLTest.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxACLTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxACLTest.java index 2412fbb..9da7152 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxACLTest.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxACLTest.java @@ -90,9 +90,7 @@ public class MailboxACLTest { Map<EntryKey, Rfc4314Rights> foundEntries = result.getEntries(); - assertThat(foundEntries) - .hasSize(expectedEntries.size()) - .containsAllEntriesOf(expectedEntries); + assertThat(foundEntries).isEqualTo(expectedEntries); } @Test @@ -170,9 +168,7 @@ public class MailboxACLTest { Map<EntryKey, Rfc4314Rights> foundEntries = result.getEntries(); - assertThat(foundEntries) - .hasSize(expectedEntries.size()) - .containsAllEntriesOf(expectedEntries); + assertThat(foundEntries).isEqualTo(expectedEntries); } @Test @@ -185,9 +181,7 @@ public class MailboxACLTest { Map<EntryKey, Rfc4314Rights> foundEntries = result.getEntries(); - assertThat(foundEntries) - .hasSize(expectedEntries.size()) - .containsAllEntriesOf(expectedEntries); + assertThat(foundEntries).isEqualTo(expectedEntries); } @Test @@ -201,9 +195,7 @@ public class MailboxACLTest { Map<EntryKey, Rfc4314Rights> foundEntries = result.getEntries(); - assertThat(foundEntries) - .hasSize(expectedEntries.size()) - .containsAllEntriesOf(expectedEntries); + assertThat(foundEntries).isEqualTo(expectedEntries); } @Test @@ -216,9 +208,7 @@ public class MailboxACLTest { Map<EntryKey, Rfc4314Rights> foundEntries = result.getEntries(); - assertThat(foundEntries) - .hasSize(expectedEntries.size()) - .containsAllEntriesOf(expectedEntries); + assertThat(foundEntries).isEqualTo(expectedEntries); } @Test @@ -227,4 +217,11 @@ public class MailboxACLTest { .isEqualTo(MailboxACL.EMPTY); } + @Test + public void applyShouldNotThrowWhenRemovingANonExistingEntry() throws Exception{ + assertThat(MailboxACL.EMPTY + .apply(new MailboxACL.ACLCommand(EntryKey.createUser("bob"), MailboxACL.EditMode.REPLACE, null))) + .isEqualTo(MailboxACL.EMPTY); + } + } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org