All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.searls.jasmine.io.scripts.ResolvesCompleteListOfScriptLocations Maven / Gradle / Ivy

Go to download

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

There is a newer version: 3.0-beta-02
Show newest version
package com.github.searls.jasmine.io.scripts;

import java.io.IOException;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

import com.github.searls.jasmine.model.ScriptSearch;

public class ResolvesCompleteListOfScriptLocations {

  private FindsScriptLocationsInDirectory findsScriptLocationsInDirectory = new FindsScriptLocationsInDirectory();
  private ResolvesLocationOfPreloadSources resolvesLocationOfPreloadSources = new ResolvesLocationOfPreloadSources();
  private RelativizesASetOfScripts relativizesASetOfScripts = new RelativizesASetOfScripts();
  private Set preloadScripts;
  private Set sources;
  private Set specs;
  private Set allScripts;

  public Set resolve(ScriptSearch sources, ScriptSearch specs, List preloadSources) throws IOException {
    this.preloadScripts = new LinkedHashSet(resolvesLocationOfPreloadSources.resolve(preloadSources, sources.getDirectory(), specs.getDirectory()));
    this.sources = new LinkedHashSet(findsScriptLocationsInDirectory.find(sources));
    this.specs = new LinkedHashSet(findsScriptLocationsInDirectory.find(specs));

    allScripts = new LinkedHashSet();

    allScripts.addAll(this.preloadScripts);
    allScripts.addAll(this.sources);
    allScripts.addAll(this.specs);
    return allScripts;
  }

  public Set getPreloadScripts() {
    return preloadScripts;
  }

  public Set getSources() {
    return sources;
  }

  public Set getSpecs() {
    return specs;
  }

  public Set getAllScripts() {
    return allScripts;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy