Fix for scanning files in strange directories (#245)
* Fix for scanning files in strange directories * readded ugly code
This commit is contained in:
@@ -24,14 +24,15 @@ class ContractFileScanner {
|
||||
|
||||
ContractFileScanner(File baseDir, Set<String> excluded, Set<String> ignored) {
|
||||
this.baseDir = baseDir
|
||||
excludeMatchers = processPatterns(excluded, baseDir)
|
||||
ignoreMatchers = processPatterns(ignored, baseDir)
|
||||
excludeMatchers = processPatterns(excluded)
|
||||
ignoreMatchers = processPatterns(ignored)
|
||||
}
|
||||
|
||||
private Set<PathMatcher> processPatterns(Set<String> patterns, baseDir) {
|
||||
private Set<PathMatcher> processPatterns(Set<String> patterns) {
|
||||
FileSystem fileSystem = FileSystems.getDefault()
|
||||
return patterns.collect({
|
||||
String syntaxAndPattern = MATCH_PREFIX + baseDir.toString() + File.separator + it
|
||||
String syntaxAndPattern = MATCH_PREFIX + '**' + File.separator + it
|
||||
// FIXME: This looks strange, need to be checked on windows
|
||||
if (SystemUtils.IS_OS_WINDOWS) {
|
||||
syntaxAndPattern = syntaxAndPattern.replace("\\", "\\\\")
|
||||
}
|
||||
|
||||
@@ -28,6 +28,22 @@ class ContractFileScannerSpec extends Specification {
|
||||
ignoredSet.ignored == [true]
|
||||
}
|
||||
|
||||
def "should find contract files in strange directories"() {
|
||||
given:
|
||||
File baseDir = new File(this.getClass().getResource("/strange_[3.3.3]_directory").toURI())
|
||||
Set<String> excluded = ["foo/**"] as Set
|
||||
Set<String> ignored = ["bar/**"] as Set
|
||||
ContractFileScanner scanner = new ContractFileScanner(baseDir, excluded, ignored)
|
||||
when:
|
||||
ListMultimap<Path, Contract> result = scanner.findContracts()
|
||||
then:
|
||||
result.entries().size() == 2
|
||||
and:
|
||||
Collection<Contract> ignoredSet = result.get(baseDir.toPath().resolve("bar"))
|
||||
ignoredSet.size() == 1
|
||||
ignoredSet.ignored == [true]
|
||||
}
|
||||
|
||||
def "should find contracts group in scenario"() {
|
||||
given:
|
||||
File baseDir = new File(this.getClass().getResource("/directory/with/scenario").toURI())
|
||||
|
||||
Reference in New Issue
Block a user