private Boolean hasRightOn(Mailbox mailbox, String userName, Right right) { return Optional.ofNullable( mailbox.getACL() .ofPositiveNameType(NameType.user) .get(MailboxACL.EntryKey.createUserEntryKey(userName))) .map(rights -> rights.contains(right)) .orElse(false); } }
@Test public void usersACLShouldReturnEmptyMapWhenEmpty() { assertThat(MailboxACL.EMPTY.ofPositiveNameType(NameType.user)) .isEmpty(); }
@Test public void ofPositiveNameTypeShouldFilterOutNegativeEntries() throws Exception { MailboxACL mailboxACL = new MailboxACL( ImmutableMap.of(EntryKey.createUserEntryKey("user1", NEGATIVE), MailboxACL.FULL_RIGHTS)); assertThat(mailboxACL.ofPositiveNameType(NameType.user)) .isEmpty(); } }
@Test public void usersACLShouldReturnEmptyMapWhenNoUserEntry() { MailboxACL mailboxACL = new MailboxACL( ImmutableMap.of(EntryKey.createGroupEntryKey("group"), MailboxACL.FULL_RIGHTS, EntryKey.createGroupEntryKey("group2"), MailboxACL.NO_RIGHTS)); assertThat(mailboxACL.ofPositiveNameType(NameType.user)) .isEmpty(); }
@Test public void usersACLShouldReturnOnlyUsersMapWhenSomeUserEntries() throws Exception { MailboxACL.Rfc4314Rights rights = MailboxACL.Rfc4314Rights.fromSerializedRfc4314Rights("aei"); MailboxACL mailboxACL = new MailboxACL( ImmutableMap.of(EntryKey.createUserEntryKey("user1"), MailboxACL.FULL_RIGHTS, EntryKey.createGroupEntryKey("group"), MailboxACL.FULL_RIGHTS, EntryKey.createUserEntryKey("user2"), rights, EntryKey.createGroupEntryKey("group2"), MailboxACL.NO_RIGHTS)); assertThat(mailboxACL.ofPositiveNameType(NameType.user)) .containsOnly( MapEntry.entry(EntryKey.createUserEntryKey("user1"), MailboxACL.FULL_RIGHTS), MapEntry.entry(EntryKey.createUserEntryKey("user2"), rights)); }