From 7b0a093f265903cb43d33dac53f76d03df5bd83a Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Tue, 28 Oct 2014 12:01:15 +0000
Subject: [PATCH] Fix for OPENDJ-1586: Changes in processSearch to iterate through nested groups members when a search is based on a filter of the isMemberOf attribute. Fix unit test that must explicitly deleted groups to reset the GroupManager cache (tearing down the MemoryBackend doesn't do it).

---
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProviderTestCase.java |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProviderTestCase.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProviderTestCase.java
index 05ad783..422567a 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProviderTestCase.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProviderTestCase.java
@@ -1281,16 +1281,13 @@
          conn.processDelete(DN.decode("cn=test group 1,ou=groups,o=test"));
     assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS);
 
-    deleteOperation =
-         conn.processDelete(DN.decode("cn=test group 2,ou=groups,o=test"));
+    deleteOperation = conn.processDelete(DN.decode("cn=test group 2,ou=groups,o=test"));
     assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS);
 
-    deleteOperation =
-         conn.processDelete(DN.decode("cn=test group 3,ou=groups,o=test"));
+    deleteOperation = conn.processDelete(DN.decode("cn=test group 3,ou=groups,o=test"));
     assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS);
 
-    deleteOperation =
-         conn.processDelete(DN.decode("cn=test group 4,ou=groups,o=test"));
+    deleteOperation = conn.processDelete(DN.decode("cn=test group 4,ou=groups,o=test"));
     assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS);
   }
 
@@ -1388,6 +1385,15 @@
     assertEquals(entries.get(0).getDN().toNormalizedString(), "cn=test group 1,ou=groups,o=test");
     // Then indirect members
     assertEquals(entries.get(1).getDN().toNormalizedString(), "uid=test.user,ou=people,o=test");
+
+    // Explicitly delete created groups, to reset the group manager
+    DeleteOperation deleteOperation =
+        conn.processDelete(DN.decode("cn=Test Group 1,ou=groups,o=test"));
+    assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS);
+    deleteOperation = conn.processDelete(DN.decode("cn=Test Group 2,ou=groups,o=test"));
+    assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS);
+    deleteOperation = conn.processDelete(DN.decode("cn=Test Group 3,ou=groups,o=test"));
+    assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS);
   }
 
   /**

--
Gitblit v1.10.0