HtmlGeneratorConfiguration.java
package com.github.searls.jasmine.runner;
import com.github.searls.jasmine.config.JasmineConfiguration;
import com.github.searls.jasmine.io.IOUtilsWrapper;
import com.github.searls.jasmine.io.scripts.ScriptResolver;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class HtmlGeneratorConfiguration {
private final String sourceEncoding;
private final ReporterType reporterType;
private final File customRunnerTemplate;
private final File customRunnerConfiguration;
private final IOUtilsWrapper ioUtilsWrapper;
private final SpecRunnerTemplate specRunnerTemplate;
private final ScriptResolver scriptResolver;
private final String srcDirectoryName;
private final String specDirectoryName;
private final int autoRefreshInterval;
private final boolean autoRefresh;
public HtmlGeneratorConfiguration(ReporterType reporterType, JasmineConfiguration configuration, ScriptResolver scriptResolver) throws IOException {
this(new IOUtilsWrapper(), reporterType, configuration, scriptResolver);
}
public HtmlGeneratorConfiguration(IOUtilsWrapper ioUtilsWrapper, ReporterType reporterType, JasmineConfiguration configuration, ScriptResolver scriptResolver) throws IOException {
this.ioUtilsWrapper = ioUtilsWrapper;
this.sourceEncoding = configuration.getSourceEncoding();
this.reporterType = reporterType;
this.customRunnerTemplate = configuration.getCustomRunnerTemplate();
this.specRunnerTemplate = configuration.getSpecRunnerTemplate();
this.scriptResolver = scriptResolver;
this.customRunnerConfiguration = configuration.getCustomRunnerConfiguration();
this.srcDirectoryName = configuration.getSrcDirectoryName();
this.specDirectoryName = configuration.getSpecDirectoryName();
this.autoRefreshInterval = configuration.getAutoRefreshInterval();
this.autoRefresh = this.autoRefreshInterval > 0 && ReporterType.HtmlReporter.equals(reporterType);
}
public String getSourceEncoding() {
return this.sourceEncoding;
}
public ReporterType getReporterType() {
return this.reporterType;
}
public File getCustomRunnerTemplate() {
return this.customRunnerTemplate;
}
public String IOtoString(String defaultHtmlTemplatePath) throws IOException {
return this.ioUtilsWrapper.toString(defaultHtmlTemplatePath);
}
public String getRunnerTemplate() throws IOException {
if (this.getCustomRunnerTemplate() != null) {
return FileUtils.readFileToString(this.getCustomRunnerTemplate());
} else {
SpecRunnerTemplate template = this.getSpecRunnerTemplate();
if (template == null) {
template = SpecRunnerTemplate.DEFAULT;
}
return this.IOtoString(template.getTemplate());
}
}
public SpecRunnerTemplate getSpecRunnerTemplate() {
return this.specRunnerTemplate;
}
public ScriptResolver getScriptResolver() {
return this.scriptResolver;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || this.getClass() != o.getClass()) return false;
HtmlGeneratorConfiguration that = (HtmlGeneratorConfiguration) o;
if (this.customRunnerTemplate != null ? !this.customRunnerTemplate.equals(that.customRunnerTemplate) : that.customRunnerTemplate != null)
return false;
if (this.reporterType != that.reporterType) return false;
if (this.sourceEncoding != null ? !this.sourceEncoding.equals(that.sourceEncoding) : that.sourceEncoding != null)
return false;
if (this.specRunnerTemplate != null ? !this.specRunnerTemplate.equals(that.specRunnerTemplate) : that.specRunnerTemplate != null)
return false;
return true;
}
@Override
public int hashCode() {
int result = this.sourceEncoding != null ? this.sourceEncoding.hashCode() : 0;
result = 31 * result + (this.reporterType != null ? this.reporterType.hashCode() : 0);
result = 31 * result + (this.customRunnerTemplate != null ? this.customRunnerTemplate.hashCode() : 0);
result = 31 * result + (this.specRunnerTemplate != null ? this.specRunnerTemplate.hashCode() : 0);
return result;
}
public String getCustomRunnerConfiguration() throws IOException {
return this.customRunnerConfiguration == null ? null : FileUtils.readFileToString(this.customRunnerConfiguration);
}
public String getSrcDirectoryName() {
return this.srcDirectoryName;
}
public String getSpecDirectoryName() {
return this.specDirectoryName;
}
public int getAutoRefreshInterval() {
return this.autoRefreshInterval;
}
public boolean getAutoRefresh() {
return this.autoRefresh;
}
}