package net.jsunit.configuration;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Properties;
public class PropertiesFileConfigurationSource implements ConfigurationSource {
public static final String PROPERTIES_FILE_NAME = "jsunit.properties";
private Properties properties;
private String propertiesFileName;
public PropertiesFileConfigurationSource(String propertiesFileName) throws FileNotFoundException {
this.propertiesFileName = propertiesFileName;
loadProperties();
}
public PropertiesFileConfigurationSource() throws FileNotFoundException {
this(PROPERTIES_FILE_NAME);
}
private void loadProperties() throws FileNotFoundException {
properties = new Properties();
try {
FileInputStream fileInputStream = new FileInputStream(propertiesFileName);
properties.load(fileInputStream);
fileInputStream.close();
} catch (FileNotFoundException e) {
throw e;
} catch (Throwable t) {
throw new RuntimeException(t);
}
}
private String propertyValue(ConfigurationProperty property) {
return properties.getProperty(property.getName());
}
public String resourceBase() {
return propertyValue(ConfigurationProperty.RESOURCE_BASE);
}
public String logsDirectory() {
return propertyValue(ConfigurationProperty.LOGS_DIRECTORY);
}
public String port() {
return propertyValue(ConfigurationProperty.PORT);
}
public String remoteMachineURLs() {
return propertyValue(ConfigurationProperty.REMOTE_MACHINE_URLS);
}
public String url() {
return propertyValue(ConfigurationProperty.URL);
}
public String ignoreUnresponsiveRemoteMachines() {
return propertyValue(ConfigurationProperty.IGNORE_UNRESPONSIVE_REMOTE_MACHINES);
}
public String browserFileNames() {
return propertyValue(ConfigurationProperty.BROWSER_FILE_NAMES);
}
public String closeBrowsersAfterTestRuns() {
return propertyValue(ConfigurationProperty.CLOSE_BROWSERS_AFTER_TEST_RUNS);
}
public String description() {
return propertyValue(ConfigurationProperty.DESCRIPTION);
}
public String timeoutSeconds() {
return propertyValue(ConfigurationProperty.TIMEOUT_SECONDS);
}
}