// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved.
// Released under the terms of the CPL Common Public License version 1.0.
package fitnesseMain;
import java.io.IOException;
import java.util.Properties;
import static org.junit.Assert.*;
import fitnesse.ContextConfigurator;
import fitnesse.plugins.PluginException;
import org.junit.Test;
public class ArgumentsTest {
@Test(expected = IllegalArgumentException.class)
public void testBadArgument() throws Exception {
new Arguments("-x");
}
@Test
public void defaultConfigLocation() {
Arguments args = new Arguments();
assertEquals("./plugins.properties", args.getConfigFile(ContextConfigurator.systemDefaults()));
}
@Test
public void configLocationWithDifferentRootPath() {
Arguments args = new Arguments("-d", "customDir");
assertEquals("customDir/plugins.properties", args.getConfigFile(ContextConfigurator.systemDefaults()));
}
@Test
public void customConfigLocation() {
Arguments args = new Arguments("-f", "custom.properties");
assertEquals("custom.properties", args.getConfigFile(ContextConfigurator.systemDefaults()));
}
@Test
public void argumentsCanBeRepresentedByProperties() throws IOException, PluginException {
Arguments args = new Arguments("-v", "-p", "81", "-d", "directory", "-r", "root", "-b", "someFile.txt",
"-l", "myLogDirectory", "-o", "-e", "22", "-f", "fitnesse.properties", "-i", "-c", "SomeCommand", "-a", "user:pass");
Properties properties = args.update(ContextConfigurator.systemDefaults()).makeFitNesseContext().getProperties();
assertEquals("verbose", properties.getProperty("LogLevel"));
assertEquals("81", properties.getProperty("Port"));
assertEquals("directory", properties.getProperty("RootPath"));
assertEquals("root", properties.getProperty("FitNesseRoot"));
assertEquals("someFile.txt", properties.getProperty("RedirectOutput"));
assertEquals("myLogDirectory", properties.getProperty("LogDirectory"));
assertEquals("true", properties.getProperty("OmittingUpdates"));
assertEquals("22", properties.getProperty("VersionsController.days"));
assertEquals("fitnesse.properties", properties.getProperty("ConfigFile"));
assertEquals("true", properties.getProperty("InstallOnly"));
assertEquals("SomeCommand", properties.getProperty("Command"));
assertEquals("user:pass", properties.getProperty("Credentials"));
}
@Test
public void defaultArgumentsAsProperties() throws IOException, PluginException {
Arguments args = new Arguments();
Properties properties = args.update(ContextConfigurator.empty()).makeFitNesseContext().getProperties();
assertEquals("normal", properties.getProperty("LogLevel"));
assertNull(properties.getProperty("ConfigFile"));
assertEquals(".", properties.getProperty("RootPath"));
assertEquals("FitNesseRoot", properties.getProperty("FitNesseRoot"));
assertNull(properties.getProperty("RedirectOutput"));
assertNull(properties.getProperty("LogDirectory"));
assertNull(properties.getProperty("OmittingUpdates"));
assertNull(properties.getProperty("VersionsController.days"));
assertNull(properties.getProperty("InstallOnly"));
assertNull(properties.getProperty("Command"));
assertNull(properties.getProperty("Credentials"));
}
}