com.github.searls.jasmine.io.scripts.BasicScriptResolver Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jasmine-maven-plugin Show documentation
Show all versions of jasmine-maven-plugin Show documentation
A JavaScript unit test plugin that processes JavaScript sources and Jasmine specs, prepares test runner HTML files, executes Jasmine specs headlessly with HtmlUnit, and produces JUnit XML reports
package com.github.searls.jasmine.io.scripts;
import java.io.File;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import org.codehaus.plexus.util.StringUtils;
import com.github.searls.jasmine.model.ScriptSearch;
public class BasicScriptResolver implements ScriptResolver {
private static final ResolvesLocationOfPreloadSources RESOLVES_PRELOAD_SOURCES = new ResolvesLocationOfPreloadSources();
private static final FindsScriptLocationsInDirectory FINDS_SCRIPT_LOCATIONS = new FindsScriptLocationsInDirectory();
private final File baseDirectory;
private final ScriptSearch sourceScriptSearch;
private final ScriptSearch specScriptSearch;
private final List preloadList;
private Set sources;
private Set specs;
private Set preloads;
public BasicScriptResolver(File baseDirectory,
ScriptSearch sourceScriptSearch,
ScriptSearch specScriptSearch,
List preloadList) {
this.baseDirectory = baseDirectory;
this.sourceScriptSearch = sourceScriptSearch;
this.specScriptSearch = specScriptSearch;
this.preloadList = preloadList;
resolveScripts();
}
private void resolveScripts() {
this.preloads = new LinkedHashSet(RESOLVES_PRELOAD_SOURCES.resolve(
this.preloadList,
this.sourceScriptSearch.getDirectory(),
this.specScriptSearch.getDirectory()));
this.sources = new LinkedHashSet(FINDS_SCRIPT_LOCATIONS.find(this.sourceScriptSearch));
this.sources.removeAll(this.preloads);
this.specs = new LinkedHashSet(FINDS_SCRIPT_LOCATIONS.find(this.specScriptSearch));
this.specs.removeAll(this.preloads);
}
@Override
public String getSourceDirectory() {
return directoryToString(this.sourceScriptSearch.getDirectory());
}
@Override
public String getSpecDirectory() {
return directoryToString(this.specScriptSearch.getDirectory());
}
@Override
public String getBaseDirectory() {
return directoryToString(this.baseDirectory);
}
@Override
public Set getSources() {
return sources;
}
@Override
public Set getSpecs() {
return specs;
}
@Override
public Set getPreloads() {
return preloads;
}
@Override
public Set getAllScripts() {
LinkedHashSet allScripts = new LinkedHashSet();
allScripts.addAll(this.getPreloads());
allScripts.addAll(this.getSources());
allScripts.addAll(this.getSpecs());
return allScripts;
}
private String directoryToString(File directory) {
return StringUtils.stripEnd(directory.toURI().toString(), "/");
}
}