PatternsChecker.java
package com.github.casperjs.casperjsrunner;
import static com.github.casperjs.casperjsrunner.LogUtils.getLogger;
import static java.util.Arrays.asList;
import java.util.ArrayList;
import java.util.List;
public class PatternsChecker {
private static final String[] DEFAULT_JS_PATTERNS = { "**/Test*.js", "**/*Test.js", "**/*TestCase.js" };
private static final String[] DEFAULT_CS_PATTERNS = { "**/Test*.coffee", "**/*Test.coffee", "**/*TestCase.coffee" };
private PatternsChecker() {
// only used as static
}
public static List<String> checkPatterns(final List<String> patterns, final boolean includeJS, final boolean includeCS) {
if (!includeJS) {
getLogger().info("JavaScript files ignored");
}
if (!includeCS) {
getLogger().info("CoffeeScript files ignored");
}
if (patterns == null || patterns.isEmpty()) {
return computeDefaultPatterns(includeJS, includeCS);
} else {
return computePatterns(patterns, includeJS, includeCS);
}
}
private static List<String> computeDefaultPatterns(final boolean includeJS, final boolean includeCS) {
final List<String> result = new ArrayList<String>();
if (includeCS) {
result.addAll(asList(DEFAULT_CS_PATTERNS));
}
if (includeJS) {
result.addAll(asList(DEFAULT_JS_PATTERNS));
}
return result;
}
private static List<String> computePatterns(final List<String> patterns, final boolean includeJS, final boolean includeCS) {
final List<String> result = new ArrayList<String>();
for (final String pattern : patterns) {
if (pattern.endsWith(".coffee")) {
if (includeCS) {
result.add(pattern);
}
} else if (pattern.endsWith(".js")) {
if (includeJS) {
result.add(pattern);
}
} else {
result.add(pattern);
}
}
return result;
}
}