From f0966be4fc369c5b677238c7928f4a01fb369c0d Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Tue, 31 Mar 2015 09:58:23 +0000
Subject: [PATCH] Minor unit test refactoring:
---
opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/persistit/PersistitTestCase.java | 49 ++--------------
opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/EntryIDSetTest.java | 1
opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/TestJebFormat.java | 1
opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java | 87 +++++++++++++++++++++++-----
4 files changed, 77 insertions(+), 61 deletions(-)
diff --git a/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/EntryIDSetTest.java b/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/EntryIDSetTest.java
index 661a3a3..e05d0a0 100644
--- a/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/EntryIDSetTest.java
+++ b/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/EntryIDSetTest.java
@@ -35,6 +35,7 @@
import org.opends.server.DirectoryServerTestCase;
import org.testng.annotations.Test;
+@SuppressWarnings("javadoc")
@Test(groups = { "precommit", "pluggablebackend" }, sequential=true)
public class EntryIDSetTest extends DirectoryServerTestCase
{
diff --git a/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java b/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java
index dfaccfb..f085aa5 100644
--- a/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java
+++ b/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java
@@ -25,10 +25,14 @@
*/
package org.opends.server.backends.pluggable;
-import static org.forgerock.opendj.ldap.ModificationType.*;
-import static org.opends.server.protocols.internal.InternalClientConnection.*;
-import static org.opends.server.protocols.internal.Requests.*;
-import static org.opends.server.types.Attributes.*;
+import static org.forgerock.opendj.ldap.ModificationType.ADD;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import static org.opends.server.TestCaseUtils.newSortedSet;
+import static org.opends.server.protocols.internal.InternalClientConnection.getRootConnection;
+import static org.opends.server.protocols.internal.Requests.newSearchRequest;
+import static org.opends.server.types.Attributes.create;
+import static org.opends.server.types.IndexType.EQUALITY;
import static org.testng.Assert.*;
import java.io.ByteArrayOutputStream;
@@ -44,6 +48,11 @@
import org.forgerock.opendj.ldap.SearchScope;
import org.opends.server.DirectoryServerTestCase;
import org.opends.server.TestCaseUtils;
+import org.opends.server.admin.std.meta.BackendIndexCfgDefn.IndexType;
+import org.opends.server.admin.std.meta.BackendVLVIndexCfgDefn.Scope;
+import org.opends.server.admin.std.server.BackendIndexCfg;
+import org.opends.server.admin.std.server.BackendVLVIndexCfg;
+import org.opends.server.admin.std.server.PluggableBackendCfg;
import org.opends.server.api.Backend.BackendOperation;
import org.opends.server.core.DirectoryServer;
import org.opends.server.protocols.internal.InternalClientConnection;
@@ -56,7 +65,6 @@
import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.Entry;
-import org.opends.server.types.IndexType;
import org.opends.server.types.LDIFExportConfig;
import org.opends.server.types.LDIFImportConfig;
import org.opends.server.types.Modification;
@@ -73,9 +81,11 @@
*/
@SuppressWarnings("javadoc")
@Test(groups = { "precommit", "pluggablebackend" }, sequential = true)
-public abstract class PluggableBackendImplTestCase extends DirectoryServerTestCase
+public abstract class PluggableBackendImplTestCase<C extends PluggableBackendCfg> extends DirectoryServerTestCase
{
- protected BackendImpl backend;
+ protected final String backendTestName = this.getClass().getName().replaceAll("[^.]*\\.", "");
+
+ protected BackendImpl<C> backend;
protected List<Entry> topEntries;
protected List<Entry> entries;
@@ -89,7 +99,7 @@
protected int ldifNumberOfEntries;
protected String backupID;
protected String[] backendIndexes = { "sn" };
- protected String[] backendVlvIndexes = {};
+ protected String[] backendVlvIndexes = { "people" };
private AttributeType modifyAttribute;
private final ByteString modifyValue = ByteString.valueOf("foo");
@@ -97,15 +107,21 @@
private BackupDirectory backupDirectory;
/**
- * Configures a backend for the specified backend
+ * Factory method for creating a new unconfigured backend instance.
*
- * @param homeDirName
- * Directory where database file live
- * @param testBaseDN
- * Root DN for the DIT
- * @return a backend object.
+ * @return the unconfigured backend instance.
+ * @see #setUp()
*/
- protected abstract BackendImpl createBackend() throws Exception;
+ protected abstract BackendImpl<C> createBackend();
+
+ /**
+ * Factory method for creating a new backend configuration. All methods specific to the sub-class
+ * should be stubbed out.
+ *
+ * @return the new backend configuration.
+ * @see #setUp()
+ */
+ protected abstract C createBackendCfg();
@BeforeClass
public void setUp() throws Exception
@@ -114,7 +130,31 @@
TestCaseUtils.startServer();
testBaseDN = DN.valueOf("dc=test,dc=com");
+
+ C backendCfg = createBackendCfg();
+ when(backendCfg.dn()).thenReturn(testBaseDN);
+ when(backendCfg.getBackendId()).thenReturn(backendTestName);
+ when(backendCfg.getBaseDN()).thenReturn(newSortedSet(testBaseDN));
+ when(backendCfg.listBackendIndexes()).thenReturn(backendIndexes);
+ when(backendCfg.listBackendVLVIndexes()).thenReturn(backendVlvIndexes);
+ when(backendCfg.isSubordinateIndexesEnabled()).thenReturn(true);
+
+ BackendIndexCfg indexCfg = mock(BackendIndexCfg.class);
+ when(indexCfg.getIndexType()).thenReturn(newSortedSet(IndexType.PRESENCE, IndexType.EQUALITY));
+ when(indexCfg.getAttribute()).thenReturn(DirectoryServer.getAttributeType(backendIndexes[0]));
+ when(backendCfg.getBackendIndex(backendIndexes[0])).thenReturn(indexCfg);
+
+ BackendVLVIndexCfg vlvIndexCfg = mock(BackendVLVIndexCfg.class);
+ when(vlvIndexCfg.getName()).thenReturn("people");
+ when(vlvIndexCfg.getBaseDN()).thenReturn(testBaseDN);
+ when(vlvIndexCfg.getFilter()).thenReturn("(objectClass=person)");
+ when(vlvIndexCfg.getScope()).thenReturn(Scope.WHOLE_SUBTREE);
+ when(vlvIndexCfg.getSortOrder()).thenReturn("sn -employeeNumber +uid");
+ when(backendCfg.getBackendVLVIndex(backendVlvIndexes[0])).thenReturn(vlvIndexCfg);
+
backend = createBackend();
+ backend.setBackendID(backendCfg.getBackendId());
+ backend.configureBackend(backendCfg, DirectoryServer.getInstance().getServerContext());
backend.openBackend();
topEntries = TestCaseUtils.makeEntries(
@@ -550,6 +590,19 @@
}
}
+ /**
+ * Tests the storage API for resource checking. The tested method has no return value, but an
+ * exception, while not systematic, may be thrown, in which case the test must fail.
+ *
+ * @throws Exception
+ * if resources are low.
+ */
+ @Test
+ public void testCheckForEnoughResources() throws Exception
+ {
+ backend.getRootContainer().checkForEnoughResources(null);
+ }
+
@Test
public void testAdd() throws Exception
{
@@ -581,8 +634,8 @@
public void testUtilityAPIs()
{
assertEquals(backend.getEntryCount(), getTotalNumberOfLDIFEntries());
- assertFalse(backend.isIndexed(modifyAttribute, IndexType.EQUALITY));
- assertTrue(backend.isIndexed(DirectoryServer.getAttributeType(backendIndexes[0]), IndexType.EQUALITY));
+ assertFalse(backend.isIndexed(modifyAttribute, EQUALITY));
+ assertTrue(backend.isIndexed(DirectoryServer.getAttributeType(backendIndexes[0]), EQUALITY));
}
private int getTotalNumberOfLDIFEntries()
diff --git a/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/TestJebFormat.java b/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/TestJebFormat.java
index 052ba7e..e061b67 100644
--- a/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/TestJebFormat.java
+++ b/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/TestJebFormat.java
@@ -183,7 +183,6 @@
private void encodeV1Attributes(ByteStringBuilder buffer,
Map<AttributeType,List<Attribute>> attributes)
- throws DirectoryException
{
int numAttributes = 0;
diff --git a/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/persistit/PersistitTestCase.java b/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/persistit/PersistitTestCase.java
index c868ecd..e5e3c79 100644
--- a/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/persistit/PersistitTestCase.java
+++ b/opendj-sdk/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/persistit/PersistitTestCase.java
@@ -29,66 +29,29 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import org.forgerock.opendj.config.server.ConfigException;
-import org.opends.server.TestCaseUtils;
-import org.opends.server.admin.std.meta.BackendIndexCfgDefn.IndexType;
-import org.opends.server.admin.std.server.BackendIndexCfg;
import org.opends.server.admin.std.server.PersistitBackendCfg;
-import org.opends.server.admin.std.server.PluggableBackendCfg;
import org.opends.server.backends.persistit.PitBackend;
import org.opends.server.backends.pluggable.PluggableBackendImplTestCase;
-import org.opends.server.core.DirectoryServer;
-import org.testng.annotations.Test;
/**
* PersistIt Tester.
*/
-public class PersistitTestCase extends PluggableBackendImplTestCase
+public class PersistitTestCase extends PluggableBackendImplTestCase<PersistitBackendCfg>
{
- /**
- * Tests the storage API for resource checking.
- * The tested method has no return value, but an exception, while not systematic, may be thrown,
- * in which case the test must fail.
- *
- * @throws Exception if resources are low.
- */
- @Test
- public void testPersistitCfg() throws Exception
+ @Override
+ protected PitBackend createBackend()
{
- backend.getRootContainer().checkForEnoughResources(null);
+ return new PitBackend();
}
@Override
- public PitBackend createBackend() throws Exception
+ protected PersistitBackendCfg createBackendCfg()
{
- PluggableBackendCfg backendCfg = createBackendCfg();
-
- PitBackend b = new PitBackend();
- b.setBackendID(backendCfg.getBackendId());
- b.configureBackend((PersistitBackendCfg)backendCfg, DirectoryServer.getInstance().getServerContext());
- return b;
- }
-
- private PluggableBackendCfg createBackendCfg() throws ConfigException
- {
- String homeDirName = "pdb_test";
PersistitBackendCfg backendCfg = mock(PersistitBackendCfg.class);
-
- when(backendCfg.getBackendId()).thenReturn("persTest" + homeDirName);
- when(backendCfg.getDBDirectory()).thenReturn(homeDirName);
+ when(backendCfg.getDBDirectory()).thenReturn(backendTestName);
when(backendCfg.getDBDirectoryPermissions()).thenReturn("755");
when(backendCfg.getDBCacheSize()).thenReturn(0L);
when(backendCfg.getDBCachePercent()).thenReturn(20);
- when(backendCfg.isSubordinateIndexesEnabled()).thenReturn(true);
- when(backendCfg.getBaseDN()).thenReturn(TestCaseUtils.newSortedSet(testBaseDN));
- when(backendCfg.dn()).thenReturn(testBaseDN);
- when(backendCfg.listBackendIndexes()).thenReturn(backendIndexes);
- when(backendCfg.listBackendVLVIndexes()).thenReturn(backendVlvIndexes);
-
- BackendIndexCfg indexCfg = mock(BackendIndexCfg.class);
- when(indexCfg.getIndexType()).thenReturn(TestCaseUtils.newSortedSet(IndexType.PRESENCE, IndexType.EQUALITY));
- when(indexCfg.getAttribute()).thenReturn(DirectoryServer.getAttributeType(backendIndexes[0]));
- when(backendCfg.getBackendIndex(backendIndexes[0])).thenReturn(indexCfg);
return backendCfg;
}
}
--
Gitblit v1.10.0