From 89d2b350910b36c61121ad70fcf3ce06d628f708 Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Thu, 14 Jun 2007 09:05:00 +0000
Subject: [PATCH] Update JMX unit-tests Re-enable JMX unit-tests (disabled in rev 2071 due to unit-test failure)
---
opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxTestCase.java | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 104 insertions(+), 1 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxTestCase.java
index 64fb61f..7f9dcd8 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxTestCase.java
@@ -26,7 +26,22 @@
*/
package org.opends.server.protocols.jmx;
+import static org.testng.Assert.assertNotNull;
+
+import java.util.ArrayList;
+import java.util.List;
+
import org.opends.server.DirectoryServerTestCase;
+import org.opends.server.TestCaseUtils;
+import org.opends.server.api.ConnectionHandler;
+import org.opends.server.core.DirectoryServer;
+import org.opends.server.core.ModifyOperation;
+import org.opends.server.protocols.internal.InternalClientConnection;
+import org.opends.server.types.Control;
+import org.opends.server.types.DN;
+import org.opends.server.types.Modification;
+import org.opends.server.types.ModificationType;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
@@ -34,4 +49,92 @@
*/
@Test(groups = { "precommit", "jmx" })
public abstract class JmxTestCase extends DirectoryServerTestCase
-{}
+{
+ /**
+ * Set up the environment for performing the tests in this suite.
+ *
+ * @throws Exception
+ * If the environment could not be set up.
+ */
+ @BeforeClass
+ public void setUp() throws Exception
+ {
+ // Make sure that the server is up and running.
+ TestCaseUtils.startServer();
+ synchronized (this)
+ {
+ this.wait(500);
+ }
+ JmxConnectionHandler jmxCtx = getJmxConnectionHandler();
+ if (jmxCtx == null)
+ {
+ throw new Exception("Unable to get a JMX connector");
+ }
+ }
+
+ /**
+ * Get a reference to the JMX connection handler.
+ *
+ * @throws an
+ * Exception is something went wrong.
+ */
+ protected JmxConnectionHandler getJmxConnectionHandler() throws Exception
+ {
+ List<ConnectionHandler> handlers = DirectoryServer
+ .getConnectionHandlers();
+ assertNotNull(handlers);
+ JmxConnectionHandler jmxConnectionHandler = null;
+ for (ConnectionHandler handler : handlers)
+ {
+ if (handler instanceof JmxConnectionHandler)
+ {
+ jmxConnectionHandler = (JmxConnectionHandler) handler;
+ break;
+ }
+ }
+ if (jmxConnectionHandler == null)
+ {
+ enableJmx();
+ synchronized (this)
+ {
+ this.wait(500);
+ }
+ for (ConnectionHandler handler : handlers)
+ {
+ if (handler instanceof JmxConnectionHandler)
+ {
+ jmxConnectionHandler = (JmxConnectionHandler) handler;
+ break;
+ }
+ }
+ }
+
+ return jmxConnectionHandler;
+ }
+
+ /**
+ * Enable JMX with the port chosen in TestCaseUtils.
+ *
+ * @throws Exception
+ * if the handler cannot be enabled.
+ */
+ private void enableJmx() throws Exception
+ {
+ ArrayList<Modification> mods = new ArrayList<Modification>();
+
+ InternalClientConnection conn = InternalClientConnection
+ .getRootConnection();
+ mods.add(new Modification(ModificationType.REPLACE,
+ new org.opends.server.types.Attribute(
+ "ds-cfg-connection-handler-enabled", "true")));
+ ModifyOperation op = new ModifyOperation(
+ conn,
+ conn.nextOperationID(),
+ conn.nextMessageID(),
+ new ArrayList<Control>(),
+ DN
+ .decode("cn=JMX Connection Handler,cn=Connection Handlers,cn=config"),
+ mods);
+ op.run();
+ }
+}
--
Gitblit v1.10.0