mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

lutoff
14.05.2007 89d2b350910b36c61121ad70fcf3ce06d628f708
Update JMX unit-tests
Re-enable JMX unit-tests (disabled in rev 2071 due to unit-test failure)
3 files modified
216 ■■■■ changed files
opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxConnectTest.java 90 ●●●●● patch | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxTestCase.java 105 ●●●●● patch | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/postConnectedDisconnectTest.java 21 ●●●●● patch | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxConnectTest.java
@@ -37,7 +37,6 @@
import java.security.KeyStore;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import javax.management.Attribute;
@@ -51,27 +50,18 @@
import org.opends.server.admin.server.AdminTestCaseUtils;
import org.opends.server.admin.std.meta.JMXConnectionHandlerCfgDefn;
import org.opends.server.admin.std.server.JMXConnectionHandlerCfg;
import org.opends.server.api.ConnectionHandler;
import org.opends.server.config.ConfigException;
import org.opends.server.config.JMXMBean;
import org.opends.server.core.AddOperation;
import org.opends.server.core.DeleteOperation;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.ModifyOperation;
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.Control;
import org.opends.server.types.Control;
import org.opends.server.types.DN;
import org.opends.server.types.Entry;
import org.opends.server.types.Modification;
import org.opends.server.types.ModificationType;
import org.opends.server.types.ResultCode;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import static org.opends.server.config.ConfigConstants.ATTR_LISTEN_PORT;
import static org.testng.Assert.*;
@@ -83,23 +73,6 @@
public class JmxConnectTest extends JmxTestCase {
  /**
   * 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);
    }
  }
  /**
   * Build data for the simpleConnect test.
   *
   * @return the data.
@@ -122,7 +95,7 @@
   * accepted when the given credentials are OK and refused when the
   * credentials are invalid.
   */
  @Test(enabled = false, dataProvider = "simpleConnect")
  @Test(enabled = true, dataProvider = "simpleConnect")
  public void simpleConnect(String user, String password,
      boolean expectedResult) throws Exception {
    OpendsJmxConnector connector = connect(user, password,
@@ -186,7 +159,7 @@
  /**
   * Test setting some config attribute through jmx.
   */
  @Test(enabled = false)
  @Test(enabled = true)
  public void simpleSet() throws Exception {
    OpendsJmxConnector connector = connect("cn=directory manager",
        "password", TestCaseUtils.getServerJmxPort());
@@ -371,7 +344,7 @@
   * accepted when the given credentials are OK and refused when the
   * credentials are invalid.
   */
  @Test(enabled = false)
  @Test(enabled = true)
  public void sslConnect() throws Exception {
    // Enable SSL by setting ds-cfg-use-ssl boolean and the
    // certificate alias using ds-cfg-ssl-cert-nickname attribute.
@@ -451,42 +424,6 @@
    assertEquals(configResult.getResultCode(), ResultCode.SUCCESS);
  }
  /**
   * Get a reference to the JMX connection handler.
   * @throws an Exception is something went wrong.
   */
  private 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;
  }
  /**
   * Connect to the JMX service.
   */
@@ -649,25 +586,4 @@
    mbsc.setAttribute(name, attr);
  }
  /**
   * 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();
  }
}
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();
  }
}
opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/postConnectedDisconnectTest.java
@@ -30,7 +30,6 @@
import org.opends.server.TestCaseUtils;
import org.opends.server.plugins.InvocationCounterPlugin;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import static org.testng.Assert.*;
@@ -40,29 +39,11 @@
 */
public class postConnectedDisconnectTest extends JmxTestCase
{
  /**
   * 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);
    }
  }
  /**
   * Perform a simple connect.
   * @throws Exception If something wrong occurs.
   */
  @Test(enabled = false, groups = {"slow"})
  @Test(enabled = true, groups = {"slow"})
  public void checkPostconnectDisconnectPlugin() throws Exception
  {
    // Before the test, how many time postconnect and postdisconnect