package org.radargun.config;
import java.util.List;
import java.util.Map;
import org.radargun.utils.ArgsHolder;
import org.testng.annotations.Test;
import static org.testng.Assert.*;
/**
* @author Matej Cimbora <mcimbora@redhat.com>
*/
@Test
public class ArgsHolderTest {
public void testParseArgs() {
String[] masterArgs = {"--config", "/foo/configFile.xml", "--add-reporter=/foo/reporterDir", "--add-reporter=/bar/reporterDir"};
String[] slaveArgs = {"--master", "127.0.0.1:2103", "--slaveIndex", "1", "--add-plugin=/foo/plugin1", "--add-config=plugin1:/foo/config.xml",
"--add-config=plugin1:/foo/jgroups.xml", "--add-plugin=/bar/plugin2", "--add-config=plugin2:/bar/config.xml"};
ArgsHolder.init(masterArgs, ArgsHolder.ArgType.LAUNCH_MASTER);
ArgsHolder.init(slaveArgs, ArgsHolder.ArgType.SLAVE);
assertEquals("127.0.0.1", ArgsHolder.getMasterHost());
assertEquals(2103, ArgsHolder.getMasterPort());
assertEquals(1, ArgsHolder.getSlaveIndex());
assertEquals("/foo/configFile.xml", ArgsHolder.getConfigFile());
List<String> reporterPaths = ArgsHolder.getReporterPaths();
assertTrue(reporterPaths.contains("/bar/reporterDir"));
assertTrue(reporterPaths.contains("/foo/reporterDir"));
Map<String, ArgsHolder.PluginParam> pluginParams = ArgsHolder.getPluginParams();
ArgsHolder.PluginParam plugin1 = pluginParams.get("plugin1");
assertNotNull(plugin1);
assertEquals("/foo/plugin1", plugin1.getPath());
List<String> configFiles1 = plugin1.getConfigFiles();
assertTrue(configFiles1.contains("/foo/config.xml"));
assertTrue(configFiles1.contains("/foo/jgroups.xml"));
ArgsHolder.PluginParam plugin2 = pluginParams.get("plugin2");
assertNotNull(plugin2);
assertEquals("/bar/plugin2", plugin2.getPath());
List<String> configFiles2 = plugin2.getConfigFiles();
assertTrue(configFiles2.contains("/bar/config.xml"));
String[] deprecatedMasterArgs = {"-config", "/deprecated/configFile.xml"};
String[] deprecatedSlaveArgs = {"-master", "127.0.0.2:2101", "-slaveIndex", "2"};
ArgsHolder.init(deprecatedMasterArgs, ArgsHolder.ArgType.LAUNCH_MASTER);
ArgsHolder.init(deprecatedSlaveArgs, ArgsHolder.ArgType.SLAVE);
assertEquals("127.0.0.2", ArgsHolder.getMasterHost());
assertEquals(2101, ArgsHolder.getMasterPort());
assertEquals(2, ArgsHolder.getSlaveIndex());
assertEquals("/deprecated/configFile.xml", ArgsHolder.getConfigFile());
}
}