From 870930ab008b106540456b3efe47e7ec613c174d Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Tue, 17 Nov 2015 21:41:15 +0000
Subject: [PATCH] Add tests for pluggable JEBackend

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java               |   36 ++++--------------
 opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java |   10 +----
 opendj-server-legacy/src/test/java/org/opends/server/backends/jeb/JETestCase.java                         |   57 ++++++++++++++++++++++++++++
 3 files changed, 67 insertions(+), 36 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
index b4028c1..85da13d 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
@@ -2500,7 +2500,14 @@
         @Override
         public void run(WriteableTransaction txn) throws Exception
         {
-          clear0(txn);
+          for (Tree tree : listTrees())
+          {
+            tree.delete(txn);
+            if (tree instanceof Index)
+            {
+              ((Index) tree).setTrusted(txn, true);
+            }
+          }
         }
       });
     }
@@ -2510,33 +2517,6 @@
     }
   }
 
-  private void clear0(WriteableTransaction txn) throws StorageRuntimeException
-  {
-    final List<Tree> allTrees = listTrees();
-    try
-    {
-      for (Tree tree : allTrees)
-      {
-        tree.delete(txn);
-      }
-    }
-    finally
-    {
-      for(Tree tree : allTrees)
-      {
-        tree.open(txn, true);
-      }
-
-      for (Tree tree : allTrees)
-      {
-        if (tree instanceof Index)
-        {
-          ((Index) tree).setTrusted(txn, true);
-        }
-      }
-    }
-  }
-
   List<Tree> listTrees()
   {
     final List<Tree> allTrees = new ArrayList<>();
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/backends/jeb/JETestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/backends/jeb/JETestCase.java
new file mode 100644
index 0000000..931e97d
--- /dev/null
+++ b/opendj-server-legacy/src/test/java/org/opends/server/backends/jeb/JETestCase.java
@@ -0,0 +1,57 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
+ *      Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ *      Copyright 2015 ForgeRock AS
+ */
+package org.opends.server.backends.jeb;
+
+import static org.mockito.Mockito.when;
+import static org.opends.server.ConfigurationMock.legacyMockCfg;
+
+import org.opends.server.admin.std.server.JEBackendCfg;
+import org.opends.server.backends.pluggable.PluggableBackendImplTestCase;
+import org.testng.annotations.Test;
+
+/** JEBackend Tester. */
+@Test
+public class JETestCase extends PluggableBackendImplTestCase<JEBackendCfg>
+{
+  @Override
+  protected JEBackend createBackend()
+  {
+    return new JEBackend();
+  }
+
+  @Override
+  protected JEBackendCfg createBackendCfg()
+  {
+    JEBackendCfg backendCfg = legacyMockCfg(JEBackendCfg.class);
+    when(backendCfg.getDBDirectory()).thenReturn(backendTestName);
+    when(backendCfg.getDBDirectoryPermissions()).thenReturn("755");
+    when(backendCfg.getDBCacheSize()).thenReturn(0L);
+    when(backendCfg.getDBCachePercent()).thenReturn(20);
+    when(backendCfg.getDBNumCleanerThreads()).thenReturn(2);
+    when(backendCfg.getDBNumLockTables()).thenReturn(63);
+    return backendCfg;
+  }
+}
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java
index ed15983..f8c0b86 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java
@@ -767,8 +767,7 @@
   public void testSubTreeSearchAgainstAnIndexWithUnrecognizedMatchingRule() throws Exception
   {
     SearchRequest request = newSearchRequest(testBaseDN, SearchScope.WHOLE_SUBTREE, "entryUUID=xxx*");
-    List<SearchResultEntry> result = runSearch(request, false);
-    assertThat(result).isEmpty();
+    assertThat(runSearch(request, false)).isEmpty();
   }
 
   @Test(dependsOnMethods = "testAdd")
@@ -865,7 +864,7 @@
     // Move the entire subtree to another name and move it back.
     DN prevDN = DN.valueOf("ou=People," + testBaseDN);
     DN newDN = DN.valueOf("ou=users," + testBaseDN);
-    Entry renameEntry = backend.getEntry(prevDN);
+    Entry renameEntry = backend.getEntry(prevDN).duplicate(false);
 
     renameEntry.setDN(newDN);
     backend.renameEntry(prevDN, renameEntry, null);
@@ -987,16 +986,12 @@
       public void run(WriteableTransaction txn) throws Exception
       {
         entryContainer.getDN2ID().delete(txn);
-        entryContainer.getDN2ID().open(txn, true);
         entryContainer.getDN2URI().delete(txn);
-        entryContainer.getDN2URI().open(txn, true);
         entryContainer.getID2ChildrenCount().delete(txn);
-        entryContainer.getID2ChildrenCount().open(txn, true);
         for(VLVIndex idx : entryContainer.getVLVIndexes())
         {
           idx.setTrusted(txn, false);
           idx.delete(txn);
-          idx.open(txn, true);
         }
         for(AttributeIndex attribute : entryContainer.getAttributeIndexes())
         {
@@ -1004,7 +999,6 @@
           {
             idx.setTrusted(txn, false);
             idx.delete(txn);
-            idx.open(txn, true);
           }
         }
       }

--
Gitblit v1.10.0