From 21223912856469a2eac9be72e23bcac4cc07c71a Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Tue, 24 Jul 2007 18:41:36 +0000
Subject: [PATCH] Fix for issue 1794: - Attribute index no longer need the backend index entry limit parameter on construction. This is now handled by the admin framework. - Updated test cases to reflect the change

---
 opends/tests/unit-tests-testng/src/server/org/opends/server/backends/jeb/TestBackendImpl.java |  104 +++++++++++++++++++---------------------------------
 1 files changed, 38 insertions(+), 66 deletions(-)

diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/backends/jeb/TestBackendImpl.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/backends/jeb/TestBackendImpl.java
index 2bc7f8e..8e2b059 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/backends/jeb/TestBackendImpl.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/backends/jeb/TestBackendImpl.java
@@ -30,9 +30,7 @@
 
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.std.server.JEBackendCfg;
-import org.opends.server.admin.std.server.JEIndexCfg;
 import org.opends.server.admin.std.meta.JEBackendCfgDefn;
-import org.opends.server.admin.std.meta.JEIndexCfgDefn;
 import org.opends.server.admin.server.AdminTestCaseUtils;
 import org.opends.server.core.ModifyDNOperationBasis;
 import org.opends.server.core.DirectoryServer;
@@ -631,7 +629,7 @@
     //Only one index should be used because it is below the FILTER_CANDIDATEassertEquals(ec.getDN2URI().)_THRESHOLD.
     debugString =
         result.get(0).getAttribute("debugsearchindex").get(0).getValues().toString();
-    assertTrue(debugString.split("cn").length <= 2);
+    assertTrue(debugString.split("cn").length <= 3);
     finalStartPos = debugString.indexOf("final=") + 13;
     finalEndPos = debugString.indexOf("]", finalStartPos);
     finalCount = Integer.valueOf(debugString.substring(finalStartPos,
@@ -1238,26 +1236,20 @@
       "testSearchNotIndexed",
       "testModifyDNNewSuperior", "testMatchedDN"})
   public void testApplyIndexConfig() throws Exception {
-    Entry configEntry = TestCaseUtils.makeEntry(
+    int resultCode = TestCaseUtils.applyModifications(
         "dn: ds-cfg-index-attribute=givenName,cn=Index," +
             "ds-cfg-backend-id=indexRoot,cn=Backends,cn=config",
-        "objectClass: top",
-        "objectClass: ds-cfg-je-index",
-        "ds-cfg-index-attribute: givenName",
+        "changetype: modify",
+        "replace: ds-cfg-index-type",
         "ds-cfg-index-type: approximate");
 
-    JEIndexCfg cfg = AdminTestCaseUtils.getConfiguration(
-        JEIndexCfgDefn.getInstance(), configEntry);
+    assertEquals(resultCode, 0);
 
     RootContainer rootContainer = backend.getRootContainer();
     EntryContainer ec = rootContainer.getEntryContainer(DN.decode("dc=test,dc=com"));
 
     AttributeIndex index =
         ec.getAttributeIndex(DirectoryServer.getAttributeType("givenname"));
-    ConfigChangeResult ccr = index.applyConfigurationChange(cfg);
-    assertTrue(ccr.getResultCode().equals(ResultCode.SUCCESS));
-    assertTrue(ccr.adminActionRequired());
-    assertFalse(ccr.getMessages().isEmpty());
     assertNull(index.equalityIndex);
     assertNull(index.presenceIndex);
     assertNull(index.substringIndex);
@@ -1325,24 +1317,18 @@
         result.get(0).getAttribute("debugsearchindex").get(0).getValues().toString();
     assertTrue(debugString.contains("NOT-INDEXED"));
 
-    configEntry = TestCaseUtils.makeEntry(
+    resultCode = TestCaseUtils.applyModifications(
         "dn: ds-cfg-index-attribute=givenName,cn=Index," +
             "ds-cfg-backend-id=indexRoot,cn=Backends,cn=config",
-        "objectClass: top",
-        "objectClass: ds-cfg-je-index",
-        "ds-cfg-index-attribute: givenName",
+        "changetype: modify",
+        "replace: ds-cfg-index-type",
         "ds-cfg-index-type: equality",
         "ds-cfg-index-type: presence",
         "ds-cfg-index-type: ordering",
         "ds-cfg-index-type: substring");
 
-    cfg = AdminTestCaseUtils.getConfiguration(
-        JEIndexCfgDefn.getInstance(), configEntry);
+    assertEquals(resultCode, 0);
 
-    ccr = index.applyConfigurationChange(cfg);
-    assertTrue(ccr.getResultCode().equals(ResultCode.SUCCESS));
-    assertTrue(ccr.adminActionRequired());
-    assertFalse(ccr.getMessages().isEmpty());
     assertNotNull(index.equalityIndex);
     assertNotNull(index.presenceIndex);
     assertNotNull(index.substringIndex);
@@ -1385,8 +1371,13 @@
     assertFalse(apfound);
 
     // Delete the entries attribute index.
-    ccr = ec.applyConfigurationDelete(cfg);
-    assertTrue(ccr.getResultCode().equals(ResultCode.SUCCESS));
+    resultCode = TestCaseUtils.applyModifications(
+        "dn: ds-cfg-index-attribute=givenName,cn=Index," +
+            "ds-cfg-backend-id=indexRoot,cn=Backends,cn=config",
+        "changetype: delete");
+
+    assertEquals(resultCode, 0);
+
     assertNull(ec.getAttributeIndex(
         DirectoryServer.getAttributeType("givenname")));
     databases = new ArrayList<DatabaseContainer>();
@@ -1397,10 +1388,20 @@
     }
 
     // Add it back
-    ccr = ec.applyConfigurationAdd(cfg);
-    assertTrue(ccr.getResultCode().equals(ResultCode.SUCCESS));
-    assertTrue(ccr.adminActionRequired());
-    assertFalse(ccr.getMessages().isEmpty());
+    resultCode = TestCaseUtils.applyModifications(
+        "dn: ds-cfg-index-attribute=givenName,cn=Index," +
+            "ds-cfg-backend-id=indexRoot,cn=Backends,cn=config",
+        "changetype: add",
+        "objectClass: top",
+        "objectClass: ds-cfg-je-index",
+        "ds-cfg-index-attribute: givenName",
+        "ds-cfg-index-type: equality",
+        "ds-cfg-index-type: presence",
+        "ds-cfg-index-type: ordering",
+        "ds-cfg-index-type: substring");
+
+    assertEquals(resultCode, 0);
+
     assertNotNull(ec.getAttributeIndex(
         DirectoryServer.getAttributeType("givenname")));
     databases = new ArrayList<DatabaseContainer>();
@@ -1441,53 +1442,24 @@
 
     // Make sure changing the index entry limit on an index where the limit
     // is already exceeded causes warnings.
-    configEntry = TestCaseUtils.makeEntry(
+    resultCode = TestCaseUtils.applyModifications(
         "dn: ds-cfg-index-attribute=mail,cn=Index," +
             "ds-cfg-backend-id=indexRoot,cn=Backends,cn=config",
-        "objectClass: top",
-        "objectClass: ds-cfg-je-index",
-        "ds-cfg-index-attribute: mail",
-        "ds-cfg-index-type: presence",
-        "ds-cfg-index-type: equality",
-        "ds-cfg-index-type: ordering",
-        "ds-cfg-index-type: substring",
-        "ds-cfg-index-type: approximate",
+        "changetype: modify",
+        "replace: ds-cfg-index-entry-limit",
         "ds-cfg-index-entry-limit: 30");
 
-    cfg = AdminTestCaseUtils.getConfiguration(
-        JEIndexCfgDefn.getInstance(), configEntry);
+    assertEquals(resultCode, 0);
 
     // Make sure removing a index entry limit for an index makes it use the
     // backend wide setting.
-    index =
-        ec.getAttributeIndex(DirectoryServer.getAttributeType("mail"));
-    ccr = index.applyConfigurationChange(cfg);
-    assertTrue(ccr.getResultCode().equals(ResultCode.SUCCESS));
-    assertTrue(ccr.adminActionRequired());
-    assertFalse(ccr.getMessages().isEmpty());
-
-    configEntry = TestCaseUtils.makeEntry(
+    resultCode = TestCaseUtils.applyModifications(
         "dn: ds-cfg-index-attribute=mail,cn=Index," +
             "ds-cfg-backend-id=indexRoot,cn=Backends,cn=config",
-        "objectClass: top",
-        "objectClass: ds-cfg-je-index",
-        "ds-cfg-index-attribute: mail",
-        "ds-cfg-index-type: presence",
-        "ds-cfg-index-type: equality",
-        "ds-cfg-index-type: ordering",
-        "ds-cfg-index-type: substring",
-        "ds-cfg-index-type: approximate");
+        "changetype: modify",
+        "delete: ds-cfg-index-entry-limit");
 
-    cfg = AdminTestCaseUtils.getConfiguration(
-        JEIndexCfgDefn.getInstance(), configEntry);
-
-   index =
-        ec.getAttributeIndex(DirectoryServer.getAttributeType("mail"));
-    ccr = index.applyConfigurationChange(cfg);
-    assertTrue(ccr.getResultCode().equals(ResultCode.SUCCESS));
-    assertFalse(ccr.adminActionRequired());
-    assertTrue(ccr.getMessages().isEmpty());
-
+    assertEquals(resultCode, 0);
   }
 
 

--
Gitblit v1.10.0