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 ead53185e03835d8c9c61225cdc0f2026a57dfc9 Author: Benoit Tellier <[email protected]> AuthorDate: Thu Jun 10 11:25:23 2021 +0700 JAMES-3594 Tests that extra filters are well applied --- .../user/ldap/ReadOnlyUsersLDAPRepositoryTest.java | 61 ++++++++++++++++++---- 1 file changed, 52 insertions(+), 9 deletions(-) diff --git a/server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java b/server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java index 047ce35..7254907 100644 --- a/server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java +++ b/server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java @@ -75,15 +75,7 @@ class ReadOnlyUsersLDAPRepositoryTest { @Test void shouldNotStartWithInvalidFilter() throws Exception { - PropertyListConfiguration configuration = new PropertyListConfiguration(); - configuration.addProperty("[@ldapHost]", ldapContainer.getLdapHost()); - configuration.addProperty("[@principal]", "cn=admin,dc=james,dc=org"); - configuration.addProperty("[@credentials]", ADMIN_PASSWORD); - configuration.addProperty("[@userBase]", "ou=people,dc=james,dc=org"); - configuration.addProperty("[@userObjectClass]", "inetOrgPerson"); - configuration.addProperty("[@userIdAttribute]", "uid"); - configuration.addProperty("[@administratorId]", ADMIN_LOCAL_PART); - + HierarchicalConfiguration<ImmutableNode> configuration = ldapRepositoryConfiguration(ldapContainer); configuration.addProperty("[@filter]", "INVALID!!!"); ReadOnlyUsersLDAPRepository usersLDAPRepository = new ReadOnlyUsersLDAPRepository(new SimpleDomainList()); @@ -94,6 +86,57 @@ class ReadOnlyUsersLDAPRepositoryTest { } @Nested + class FilterTests { + @Test + void filterShouldKeepMatchingEntries() throws Exception { + HierarchicalConfiguration<ImmutableNode> configuration = ldapRepositoryConfiguration(ldapContainer); + configuration.addProperty("[@filter]", "(sn=james-user)"); + + ReadOnlyUsersLDAPRepository usersLDAPRepository = new ReadOnlyUsersLDAPRepository(new SimpleDomainList()); + usersLDAPRepository.configure(configuration); + usersLDAPRepository.init(); + + assertThat(usersLDAPRepository.contains(JAMES_USER)).isTrue(); + } + + @Test + void filterShouldFilterOutNonMatchingEntries() throws Exception { + HierarchicalConfiguration<ImmutableNode> configuration = ldapRepositoryConfiguration(ldapContainer); + configuration.addProperty("[@filter]", "(sn=nomatch)"); + + ReadOnlyUsersLDAPRepository usersLDAPRepository = new ReadOnlyUsersLDAPRepository(new SimpleDomainList()); + usersLDAPRepository.configure(configuration); + usersLDAPRepository.init(); + + assertThat(usersLDAPRepository.contains(JAMES_USER)).isFalse(); + } + + @Test + void countShouldTakeFilterIntoAccount() throws Exception { + HierarchicalConfiguration<ImmutableNode> configuration = ldapRepositoryConfiguration(ldapContainer); + configuration.addProperty("[@filter]", "(sn=nomatch)"); + + ReadOnlyUsersLDAPRepository usersLDAPRepository = new ReadOnlyUsersLDAPRepository(new SimpleDomainList()); + usersLDAPRepository.configure(configuration); + usersLDAPRepository.init(); + + assertThat(usersLDAPRepository.countUsers()).isEqualTo(0); + } + + @Test + void listShouldTakeFilterIntoAccount() throws Exception { + HierarchicalConfiguration<ImmutableNode> configuration = ldapRepositoryConfiguration(ldapContainer); + configuration.addProperty("[@filter]", "(sn=nomatch)"); + + ReadOnlyUsersLDAPRepository usersLDAPRepository = new ReadOnlyUsersLDAPRepository(new SimpleDomainList()); + usersLDAPRepository.configure(configuration); + usersLDAPRepository.init(); + + assertThat(ImmutableList.copyOf(usersLDAPRepository.list())).isEmpty(); + } + } + + @Nested class WhenEnableVirtualHosting implements UsersRepositoryContract.WithVirtualHostingReadOnlyContract { @RegisterExtension UserRepositoryExtension extension = UserRepositoryExtension.withVirtualHost(); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
