From a3034db214947bd86dc9cf1efaf7a42da92291a5 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Mon, 23 Dec 2013 14:59:10 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1235 : Migrate configuration framework

---
 opendj-admin/src/test/java/org/opends/server/admin/AdminTestCase.java |   41 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/opendj-admin/src/test/java/org/opends/server/admin/AdminTestCase.java b/opendj-admin/src/test/java/org/opends/server/admin/AdminTestCase.java
index 5d7e03b..89e3cfe 100644
--- a/opendj-admin/src/test/java/org/opends/server/admin/AdminTestCase.java
+++ b/opendj-admin/src/test/java/org/opends/server/admin/AdminTestCase.java
@@ -25,7 +25,14 @@
  */
 package org.opends.server.admin;
 
+import static org.mockito.Mockito.*;
+
+import org.forgerock.opendj.admin.server.RootCfg;
 import org.forgerock.opendj.config.ConfigTestCase;
+import org.forgerock.opendj.ldap.Entry;
+import org.opends.server.admin.server.ServerManagedObject;
+import org.opends.server.admin.server.ServerManagementContext;
+import org.opends.server.config.ConfigurationRepository;
 import org.testng.annotations.Test;
 
 /**
@@ -33,6 +40,36 @@
  */
 @Test(groups = { "precommit", "admin" }, singleThreaded = true)
 public abstract class AdminTestCase extends ConfigTestCase {
-  // No implementation required.
-  // TODO : merge with ConfigTestCase ?
+
+    /**
+     * Create a mock of ConfigurationRepository with provided entries registered.
+     */
+    protected final ConfigurationRepository createConfigRepositoryWithEntries(final Entry...entries) throws Exception {
+        ConfigurationRepository configRepository = mock(ConfigurationRepository.class);
+        for (Entry entry : entries) {
+            when(configRepository.getEntry(entry.getName())).thenReturn(entry);
+            when(configRepository.hasEntry(entry.getName())).thenReturn(true);
+        }
+        return configRepository;
+    }
+
+    /** Returns the name used for this entry (the value of the cn attribute) */
+    protected final String entryName(final Entry entry) {
+        return entry.getName().rdn().getFirstAVA().getAttributeValue().toString();
+    }
+
+    /** Gets the named parent configuration corresponding to the entry */
+    protected final TestParentCfg getParentCfg(final Entry entry, final ServerManagementContext serverContext)
+            throws Exception {
+        return getParentCfg(entryName(entry), serverContext);
+    }
+
+    /** Gets the named parent configuration corresponding to provided name. */
+    protected final TestParentCfg getParentCfg(final String name, final ServerManagementContext serverContext)
+            throws Exception {
+        ServerManagedObject<RootCfg> root = serverContext.getRootConfigurationManagedObject();
+        TestParentCfg parent = root.getChild(TestCfg.getTestOneToManyParentRelationDefinition(), name)
+                .getConfiguration();
+        return parent;
+    }
 }

--
Gitblit v1.10.0