From dc48a6302b9a9d0c5a9161977b59d629d5775b56 Mon Sep 17 00:00:00 2001
From: vharseko <vharseko@openam.org.ru>
Date: Fri, 05 Oct 2018 18:29:29 +0000
Subject: [PATCH] test for https://github.com/OpenIdentityPlatform/OpenDJ/issues/10

---
 opendj-server-legacy/src/test/java/org/opends/server/extensions/IsMemberOfVirtualAttributeProviderTestCase.java |   76 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 0 deletions(-)

diff --git a/opendj-server-legacy/src/test/java/org/opends/server/extensions/IsMemberOfVirtualAttributeProviderTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/extensions/IsMemberOfVirtualAttributeProviderTestCase.java
index aa1b9e8..155fe18 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/extensions/IsMemberOfVirtualAttributeProviderTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/extensions/IsMemberOfVirtualAttributeProviderTestCase.java
@@ -43,6 +43,8 @@
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
+import com.google.common.base.Joiner;
+
 import static org.opends.server.protocols.internal.InternalClientConnection.*;
 import static org.opends.server.protocols.internal.Requests.*;
 import static org.opends.server.util.CollectionUtils.*;
@@ -916,6 +918,80 @@
     List<SearchResultEntry> entries = searchOperation.getSearchEntries();
     assertTrue(entries.size()>4000);
   }
+  
+  /**
+   * https://github.com/OpenIdentityPlatform/OpenDJ/issues/10
+   *
+   * @throws  Exception  If an unexpected problem occurs.
+   */
+  @Test
+  public void test_issues_10() throws Exception
+  {
+    TestCaseUtils.initializeTestBackend(true);
+    TestCaseUtils.addEntries(
+        "dn: cn=bannished,ou=groups,dc=example,dc=com\n" + 
+        "objectClass: extensibleObject\n" + 
+        "objectClass: top\n" + 
+        "objectClass: groupOfUniqueNames\n" + 
+        "description: All Hobbits\n" + 
+        "cn: bannished\n" + 
+        "\n" + 
+        "dn: cn=wizards,ou=groups,dc=example,dc=com\n" + 
+        "objectClass: extensibleObject\n" + 
+        "objectClass: top\n" + 
+        "objectClass: groupOfURLs\n" + 
+        "description: All Wizards\n" + 
+        "cn: wizards\n" + 
+        "memberURL: ldap:///ou=people,dc=example,dc=com??sub?(&(objectClass=person)(o=wizard)(!(memberOf=cn=bannished,ou=groups,dc=example,dc=com)))\n" + 
+        "\n" + 
+        "dn: cn=hobbits,ou=groups,dc=example,dc=com\n" + 
+        "objectClass: extensibleObject\n" + 
+        "objectClass: top\n" + 
+        "objectClass: groupOfURLs\n" + 
+        "description: All Hobbits\n" + 
+        "cn: hobbits\n" + 
+        "memberURL: ldap:///ou=people,dc=example,dc=com??sub?(&(objectClass=person)(!(memberOf=cn=wizards,ou=groups,dc=example,dc=com)))\n" + 
+        "\n" + 
+        "\n" + 
+        "dn: uid=frb0000,ou=people,dc=example,dc=com\n" + 
+        "objectClass: person\n" + 
+        "objectClass: organizationalPerson\n" + 
+        "objectClass: inetOrgPerson\n" + 
+        "objectClass: extensibleObject\n" + 
+        "objectClass: top\n" + 
+        "givenName: Frodo\n" + 
+        "sn: Baggins\n" + 
+        "cn: Frodo Baggins\n" + 
+        "displayName: Frodo in the Bag\n" + 
+        "o: shire\n" + 
+        "uid: frb0000\n" + 
+        "\n" + 
+        "dn: uid=gtg0000,ou=people,dc=example,dc=com\n" + 
+        "objectClass: person\n" + 
+        "objectClass: organizationalPerson\n" + 
+        "objectClass: inetOrgPerson\n" + 
+        "objectClass: extensibleObject\n" + 
+        "objectClass: top\n" + 
+        "givenName: Gandalf\n" + 
+        "sn: the Grey\n" + 
+        "cn: Gandalf the Grey\n" + 
+        "displayName: Gandalf the White\n" + 
+        "o: wizard\n" + 
+        "uid: gtg0000\n"+
+        "memberOf: cn=bannished,ou=groups,dc=example,dc=com\n"+
+        "\n"
+        );
+
+    SearchRequest request = newSearchRequest(DN.valueOf("ou=people,dc=example,dc=com"), SearchScope.WHOLE_SUBTREE, SearchFilter.createFilterFromString("(cn=*)"),"dn","isMemberOf");
+    InternalSearchOperation searchOperation = getRootConnection().processSearch(request);
+    assertEquals(searchOperation.getResultCode(), ResultCode.SUCCESS);
+    List<SearchResultEntry> entries = searchOperation.getSearchEntries();
+   
+    System.out.println(Joiner.on("\n").join(entries));
+    
+
+  }
+
 
   private VirtualAttributeRule buildRule(IsMemberOfVirtualAttributeProvider provider)
   {

--
Gitblit v1.10.0