| | |
| | | * @throws Exception If an unexpected problem occurs. |
| | | */ |
| | | @Test |
| | | public void testStaticGroupMembershipMember() |
| | | throws Exception |
| | | public void testStaticGroupMembershipMember() throws Exception |
| | | { |
| | | TestCaseUtils.initializeTestBackend(true); |
| | | |
| | |
| | | "cn: Test Static Group", |
| | | "member: uid=test.user,ou=People,o=test"); |
| | | |
| | | Entry e = |
| | | DirectoryServer.getEntry(DN.valueOf("uid=test.user,ou=People,o=test")); |
| | | Entry e = DirectoryServer.getEntry(DN.valueOf("uid=test.user,ou=People,o=test")); |
| | | assertNotNull(e); |
| | | assertTrue(e.hasAttribute(isMemberOfType)); |
| | | for (Attribute a : e.getAttribute(isMemberOfType)) |
| | |
| | | assertFalse(a.contains(ByteString.valueOf("invalid"))); |
| | | } |
| | | |
| | | DeleteOperation deleteOperation = |
| | | getRootConnection().processDelete(DN.valueOf("cn=test static group,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | delete("cn=test static group,ou=groups,o=test"); |
| | | } |
| | | |
| | | |
| | |
| | | "cn: Test Static Group", |
| | | "uniqueMember: uid=test.user,ou=People,o=test"); |
| | | |
| | | Entry e = |
| | | DirectoryServer.getEntry(DN.valueOf("uid=test.user,ou=People,o=test")); |
| | | Entry e = DirectoryServer.getEntry(DN.valueOf("uid=test.user,ou=People,o=test")); |
| | | assertNotNull(e); |
| | | assertTrue(e.hasAttribute(isMemberOfType)); |
| | | for (Attribute a : e.getAttribute(isMemberOfType)) |
| | |
| | | assertFalse(a.contains(ByteString.valueOf("invalid"))); |
| | | } |
| | | |
| | | DeleteOperation deleteOperation = |
| | | getRootConnection().processDelete(DN.valueOf("cn=test static group,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | delete("cn=test static group,ou=groups,o=test"); |
| | | } |
| | | |
| | | |
| | |
| | | "cn: Test Dynamic Group", |
| | | "memberURL: ldap:///ou=People,o=test??sub?(sn=user)"); |
| | | |
| | | Entry e = |
| | | DirectoryServer.getEntry(DN.valueOf("uid=test.user,ou=People,o=test")); |
| | | Entry e = DirectoryServer.getEntry(DN.valueOf("uid=test.user,ou=People,o=test")); |
| | | assertNotNull(e); |
| | | assertTrue(e.hasAttribute(isMemberOfType)); |
| | | for (Attribute a : e.getAttribute(isMemberOfType)) |
| | |
| | | assertFalse(a.contains(ByteString.valueOf("invalid"))); |
| | | } |
| | | |
| | | DeleteOperation deleteOperation = |
| | | getRootConnection().processDelete(DN.valueOf("cn=test dynamic group,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | delete("cn=test dynamic group,ou=groups,o=test"); |
| | | } |
| | | |
| | | |
| | |
| | | "member: uid=test.user,ou=People,o=test", |
| | | "member: uid=test.user2,ou=People,o=test"); |
| | | |
| | | Entry e = |
| | | DirectoryServer.getEntry(DN.valueOf("uid=test.user,ou=People,o=test")); |
| | | Entry e = DirectoryServer.getEntry(DN.valueOf("uid=test.user,ou=People,o=test")); |
| | | assertNotNull(e); |
| | | assertTrue(e.hasAttribute(isMemberOfType)); |
| | | for (Attribute a : e.getAttribute(isMemberOfType)) |
| | |
| | | assertFalse(a.contains(ByteString.valueOf("invalid"))); |
| | | } |
| | | |
| | | InternalClientConnection conn = getRootConnection(); |
| | | DeleteOperation deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 1,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | |
| | | deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 2,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | |
| | | deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 3,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | delete("cn=test group 1,ou=groups,o=test", |
| | | "cn=test group 2,ou=groups,o=test", |
| | | "cn=test group 3,ou=groups,o=test"); |
| | | } |
| | | |
| | | |
| | |
| | | "cn: Test Group 6", |
| | | "memberURL: ldap:///o=test??sub?(givenName=test)"); |
| | | |
| | | Entry e = |
| | | DirectoryServer.getEntry(DN.valueOf("uid=test.user,ou=People,o=test")); |
| | | Entry e = DirectoryServer.getEntry(DN.valueOf("uid=test.user,ou=People,o=test")); |
| | | assertNotNull(e); |
| | | assertTrue(e.hasAttribute(isMemberOfType)); |
| | | for (Attribute a : e.getAttribute(isMemberOfType)) |
| | |
| | | assertFalse(a.contains(ByteString.valueOf("invalid"))); |
| | | } |
| | | |
| | | InternalClientConnection conn = getRootConnection(); |
| | | DeleteOperation deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 1,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | |
| | | deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 2,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | |
| | | deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 3,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | |
| | | deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 4,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | |
| | | deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 5,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | |
| | | deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 6,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | delete("cn=test group 1,ou=groups,o=test", |
| | | "cn=test group 2,ou=groups,o=test", |
| | | "cn=test group 3,ou=groups,o=test", |
| | | "cn=test group 4,ou=groups,o=test", |
| | | "cn=test group 5,ou=groups,o=test", |
| | | "cn=test group 6,ou=groups,o=test"); |
| | | } |
| | | |
| | | |
| | |
| | | * @throws Exception If an unexpected problem occurs. |
| | | */ |
| | | @Test |
| | | public void testMatchesSubstring() |
| | | throws Exception |
| | | public void testMatchesSubstring() throws Exception |
| | | { |
| | | IsMemberOfVirtualAttributeProvider provider = |
| | | new IsMemberOfVirtualAttributeProvider(); |
| | |
| | | "o: test"); |
| | | entry.processVirtualAttributes(); |
| | | |
| | | VirtualAttributeRule rule = |
| | | new VirtualAttributeRule(isMemberOfType, provider, |
| | | Collections.<DN>emptySet(), SearchScope.WHOLE_SUBTREE, |
| | | Collections.<DN>emptySet(), |
| | | Collections.<SearchFilter>emptySet(), |
| | | VirtualAttributeCfgDefn.ConflictBehavior. |
| | | VIRTUAL_OVERRIDES_REAL); |
| | | VirtualAttributeRule rule = buildRule(provider); |
| | | |
| | | LinkedList<ByteString> subAny = new LinkedList<ByteString>(); |
| | | subAny.add(ByteString.valueOf("=")); |
| | |
| | | * @throws Exception If an unexpected problem occurs. |
| | | */ |
| | | @Test |
| | | public void testGreaterThanOrEqualTo() |
| | | throws Exception |
| | | public void testGreaterThanOrEqualTo() throws Exception |
| | | { |
| | | IsMemberOfVirtualAttributeProvider provider = |
| | | new IsMemberOfVirtualAttributeProvider(); |
| | |
| | | "o: test"); |
| | | entry.processVirtualAttributes(); |
| | | |
| | | VirtualAttributeRule rule = |
| | | new VirtualAttributeRule(isMemberOfType, provider, |
| | | Collections.<DN>emptySet(), SearchScope.WHOLE_SUBTREE, |
| | | Collections.<DN>emptySet(), |
| | | Collections.<SearchFilter>emptySet(), |
| | | VirtualAttributeCfgDefn.ConflictBehavior. |
| | | VIRTUAL_OVERRIDES_REAL); |
| | | VirtualAttributeRule rule = buildRule(provider); |
| | | |
| | | ByteString value = ByteString.valueOf("o=test2"); |
| | | assertEquals(provider.greaterThanOrEqualTo(entry, rule, value), |
| | |
| | | * @throws Exception If an unexpected problem occurs. |
| | | */ |
| | | @Test |
| | | public void testLessThanOrEqualTo() |
| | | throws Exception |
| | | public void testLessThanOrEqualTo() throws Exception |
| | | { |
| | | IsMemberOfVirtualAttributeProvider provider = |
| | | new IsMemberOfVirtualAttributeProvider(); |
| | |
| | | "o: test"); |
| | | entry.processVirtualAttributes(); |
| | | |
| | | VirtualAttributeRule rule = |
| | | new VirtualAttributeRule(isMemberOfType, provider, |
| | | Collections.<DN>emptySet(), SearchScope.WHOLE_SUBTREE, |
| | | Collections.<DN>emptySet(), |
| | | Collections.<SearchFilter>emptySet(), |
| | | VirtualAttributeCfgDefn.ConflictBehavior. |
| | | VIRTUAL_OVERRIDES_REAL); |
| | | VirtualAttributeRule rule = buildRule(provider); |
| | | |
| | | ByteString value = ByteString.valueOf("o=test2"); |
| | | assertEquals(provider.lessThanOrEqualTo(entry, rule, value), |
| | |
| | | * @throws Exception If an unexpected problem occurs. |
| | | */ |
| | | @Test |
| | | public void testApproximatelyEqualTo() |
| | | throws Exception |
| | | public void testApproximatelyEqualTo() throws Exception |
| | | { |
| | | IsMemberOfVirtualAttributeProvider provider = |
| | | new IsMemberOfVirtualAttributeProvider(); |
| | |
| | | "o: test"); |
| | | entry.processVirtualAttributes(); |
| | | |
| | | VirtualAttributeRule rule = |
| | | new VirtualAttributeRule(isMemberOfType, provider, |
| | | Collections.<DN>emptySet(), SearchScope.WHOLE_SUBTREE, |
| | | Collections.<DN>emptySet(), |
| | | Collections.<SearchFilter>emptySet(), |
| | | VirtualAttributeCfgDefn.ConflictBehavior. |
| | | VIRTUAL_OVERRIDES_REAL); |
| | | VirtualAttributeRule rule = buildRule(provider); |
| | | |
| | | ByteString value = ByteString.valueOf("o=test2"); |
| | | assertEquals(provider.approximatelyEqualTo(entry, rule, value), |
| | |
| | | * @throws Exception If an unexpected problem occurs. |
| | | */ |
| | | @Test(dataProvider = "testFilters") |
| | | public void testIsSearchable(String filterString, boolean isSearchable, |
| | | boolean shouldMatch) |
| | | throws Exception |
| | | public void testIsSearchable(String filterString, boolean isSearchable, boolean shouldMatch) throws Exception |
| | | { |
| | | IsMemberOfVirtualAttributeProvider provider = |
| | | new IsMemberOfVirtualAttributeProvider(); |
| | | |
| | | VirtualAttributeRule rule = |
| | | new VirtualAttributeRule(isMemberOfType, provider, |
| | | Collections.<DN>emptySet(), SearchScope.WHOLE_SUBTREE, |
| | | Collections.<DN>emptySet(), |
| | | Collections.<SearchFilter>emptySet(), |
| | | VirtualAttributeCfgDefn.ConflictBehavior. |
| | | VIRTUAL_OVERRIDES_REAL); |
| | | VirtualAttributeRule rule = buildRule(provider); |
| | | |
| | | SearchRequest request = newSearchRequest(DN.valueOf("o=test"), SearchScope.WHOLE_SUBTREE, filterString); |
| | | InternalSearchOperation searchOperation = new InternalSearchOperation( |
| | |
| | | * @throws Exception If an unexpected problem occurs. |
| | | */ |
| | | @Test(dataProvider = "testFilters") |
| | | public void testProcessSearch(String filterString, boolean isSearchable, |
| | | boolean shouldMatch) |
| | | throws Exception |
| | | public void testProcessSearch(String filterString, boolean isSearchable, boolean shouldMatch) throws Exception |
| | | { |
| | | if (! isSearchable) |
| | | { |
| | |
| | | "member: uid=test.user2,ou=People,o=test", |
| | | "member: uid=test.user3,ou=People,o=test"); |
| | | |
| | | Entry userEntry = |
| | | DirectoryServer.getEntry(DN.valueOf("uid=test.user,ou=People,o=test")); |
| | | Entry userEntry = DirectoryServer.getEntry(DN.valueOf("uid=test.user,ou=People,o=test")); |
| | | assertNotNull(userEntry); |
| | | |
| | | IsMemberOfVirtualAttributeProvider provider = |
| | | new IsMemberOfVirtualAttributeProvider(); |
| | | |
| | | VirtualAttributeRule rule = |
| | | new VirtualAttributeRule(isMemberOfType, provider, |
| | | Collections.<DN>emptySet(), SearchScope.WHOLE_SUBTREE, |
| | | Collections.<DN>emptySet(), |
| | | Collections.<SearchFilter>emptySet(), |
| | | VirtualAttributeCfgDefn.ConflictBehavior. |
| | | VIRTUAL_OVERRIDES_REAL); |
| | | VirtualAttributeRule rule = buildRule(provider); |
| | | |
| | | SearchRequest request = newSearchRequest(DN.valueOf("o=test"), SearchScope.WHOLE_SUBTREE, filterString); |
| | | InternalClientConnection conn = getRootConnection(); |
| | |
| | | |
| | | assertEquals(matchFound, shouldMatch); |
| | | |
| | | DeleteOperation deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 1,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | |
| | | deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 2,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | |
| | | deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 3,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | |
| | | deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 4,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | delete("cn=test group 1,ou=groups,o=test", |
| | | "cn=test group 2,ou=groups,o=test", |
| | | "cn=test group 3,ou=groups,o=test", |
| | | "cn=test group 4,ou=groups,o=test"); |
| | | } |
| | | |
| | | /** |
| | |
| | | IsMemberOfVirtualAttributeProvider provider = |
| | | new IsMemberOfVirtualAttributeProvider(); |
| | | |
| | | VirtualAttributeRule rule = |
| | | new VirtualAttributeRule(isMemberOfType, provider, |
| | | Collections.<DN>emptySet(), SearchScope.WHOLE_SUBTREE, |
| | | Collections.<DN>emptySet(), |
| | | Collections.<SearchFilter>emptySet(), |
| | | VirtualAttributeCfgDefn.ConflictBehavior. |
| | | VIRTUAL_OVERRIDES_REAL); |
| | | VirtualAttributeRule rule = buildRule(provider); |
| | | |
| | | SearchRequest request = newSearchRequest(DN.valueOf("o=test"), SearchScope.WHOLE_SUBTREE, |
| | | "isMemberOf=cn=Test Group 3,ou=Groups,o=test"); |
| | |
| | | // Then indirect members |
| | | assertEquals(entries.get(1).getName(), DN.valueOf("uid=test.user,ou=people,o=test")); |
| | | |
| | | DeleteOperation deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 1,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | |
| | | deleteOperation = |
| | | conn.processDelete(DN.valueOf("cn=test group 2,ou=groups,o=test")); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | |
| | | delete("cn=test group 1,ou=groups,o=test", |
| | | "cn=test group 2,ou=groups,o=test", |
| | | "cn=test group 3,ou=groups,o=test"); |
| | | } |
| | | |
| | | |
| | |
| | | .append("??sub?(objectclass=person)"); |
| | | TestCaseUtils.addEntries(builder.toString()); |
| | | //Verify the entry. |
| | | Entry e = |
| | | DirectoryServer.getEntry(DN.valueOf("cn=user.0,ou=People"+SUFFIX)); |
| | | Entry e = DirectoryServer.getEntry(DN.valueOf("cn=user.0,ou=People" + SUFFIX)); |
| | | assertNotNull(e); |
| | | //Do an ldapsearch. |
| | | |
| | |
| | | List<SearchResultEntry> entries = searchOperation.getSearchEntries(); |
| | | assertTrue(entries.size()>4000); |
| | | } |
| | | |
| | | private VirtualAttributeRule buildRule(IsMemberOfVirtualAttributeProvider provider) |
| | | { |
| | | return new VirtualAttributeRule(isMemberOfType, provider, |
| | | Collections.<DN>emptySet(), SearchScope.WHOLE_SUBTREE, |
| | | Collections.<DN>emptySet(), |
| | | Collections.<SearchFilter>emptySet(), |
| | | VirtualAttributeCfgDefn.ConflictBehavior.VIRTUAL_OVERRIDES_REAL); |
| | | } |
| | | |
| | | private void delete(String... dns) throws Exception |
| | | { |
| | | for (String dn : dns) |
| | | { |
| | | DeleteOperation deleteOperation = getRootConnection().processDelete(DN.valueOf(dn)); |
| | | assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS); |
| | | } |
| | | } |
| | | } |
| | | |