
io.codearte.accurest.stubrunner.StubRepository.groovy Maven / Gradle / Ivy
package io.codearte.accurest.stubrunner
import groovy.transform.CompileStatic
import groovy.transform.PackageScope
/**
* Wraps the folder with WireMock mappings.
*/
@CompileStatic
@PackageScope
class StubRepository {
private final File path
StubRepository(File repository) {
if (!repository.isDirectory()) {
throw new FileNotFoundException('Missing descriptor repository')
}
this.path = repository
}
/**
* Returns the list of WireMock JSON files wrapped in {@link MappingDescriptor}
*/
List getProjectDescriptors() {
List mappingDescriptors = []
mappingDescriptors.addAll(contextDescriptors())
return mappingDescriptors
}
private List contextDescriptors() {
return path.exists() ? collectMappingDescriptors(path) : []
}
private List collectMappingDescriptors(File descriptorsDirectory) {
List mappingDescriptors = []
descriptorsDirectory.eachFileRecurse { File file ->
if (isMappingDescriptor(file)) {
mappingDescriptors << new MappingDescriptor(file)
}
}
return mappingDescriptors
}
private static boolean isMappingDescriptor(File file) {
return file.isFile() && file.name.endsWith('.json')
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy