/*
* Copyright 2011 ClamShell-Cli.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.clamshellcli.jmx;
import org.clamshellcli.api.Context;
import org.clamshellcli.jmx.Management.VmInfo;
import org.clamshellcli.test.MockContext;
import java.util.HashMap;
import java.util.Map;
import javax.management.MBeanServerConnection;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXServiceURL;
import org.junit.Test;
/**
*
* @author vladimir
*/
public class ConnectCommandTest {
Context ctx = MockContext.createInstance();
ConnectCommand cmd;
Map<String,String> argsMap;
public ConnectCommandTest() {
cmd = new ConnectCommand();
argsMap = new HashMap<String,String>();
}
@Test
public void testExecuteWithDefaultHostArgs () throws Exception{
JmxAgent agent = TestUtils.startNewJmxAgent(1099);
ctx.putValue(Context.KEY_COMMAND_LINE_ARGS, argsMap);
cmd.execute(ctx);
JMXServiceURL url = (JMXServiceURL) ctx.getValue(Management.KEY_JMX_URL);
JMXConnector c = (JMXConnector) ctx.getValue(Management.KEY_JMX_CONNECTOR);
assert url != null;
assert url.toString().equals(Management.getJmxUrlFrom("localhost").toString());
assert c == null;
agent.stop();
}
@Test
public void testExecuteWithHostArgs() throws Exception {
JmxAgent agent = TestUtils.startNewJmxAgent(1999);
argsMap.put(Management.KEY_ARGS_HOST, "localhost:1999");
ctx.putValue(Context.KEY_COMMAND_LINE_ARGS, argsMap);
cmd.execute(ctx);
JMXServiceURL url = (JMXServiceURL) ctx.getValue(Management.KEY_JMX_URL);
JMXConnector c = (JMXConnector) ctx.getValue(Management.KEY_JMX_CONNECTOR);
MBeanServerConnection cn = (MBeanServerConnection) ctx.getValue(Management.KEY_JMX_MBEANSERVER);
assert url != null;
assert c != null;
assert cn != null;
agent.stop();
}
@Test
public void testExecuteWithPidArgs() throws Exception{
JmxAgent agent = TestUtils.startNewJmxAgent(1999);
Map<Integer,VmInfo> vms = Management.mapVmInfo("localhost");
Integer vmId = vms.keySet().iterator().next();
argsMap.put(Management.KEY_ARGS_PID, vmId.toString());
ctx.putValue(Context.KEY_COMMAND_LINE_ARGS, argsMap);
cmd.execute(ctx);
JMXServiceURL url = (JMXServiceURL) ctx.getValue(Management.KEY_JMX_URL);
JMXConnector c = (JMXConnector) ctx.getValue(Management.KEY_JMX_CONNECTOR);
MBeanServerConnection cn = (MBeanServerConnection) ctx.getValue(Management.KEY_JMX_MBEANSERVER);
assert url != null;
assert c != null;
assert cn != null;
agent.stop();
}
}