
com.thoughtworks.webstub.stub.config.Configurations Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of web-stub Show documentation
Show all versions of web-stub Show documentation
Library for stubbing external HTTP dependencies
package com.thoughtworks.webstub.stub.config;
import com.thoughtworks.webstub.config.HttpConfiguration;
import com.thoughtworks.webstub.stub.matcher.RequestPartMatcher;
import com.thoughtworks.webstub.utils.Predicate;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static org.apache.commons.collections.CollectionUtils.select;
public class Configurations {
private final List configurations;
public Configurations() {
this.configurations = new ArrayList();
}
public Configurations(List configurations) {
this.configurations = new ArrayList(configurations);
}
public void add(HttpConfiguration configuration) {
configurations.add(configuration);
}
public Configurations filterBy(final RequestPartMatcher matcher) throws MissingMatchingConfigurationException {
List filtered = (List) select(configurations, new Predicate() {
@Override
public boolean satisfies(HttpConfiguration configuration) {
try {
return matcher.matches(configuration);
} catch (IOException e) {
return false;
}
}
});
if (filtered.isEmpty())
throw new MissingMatchingConfigurationException(matcher);
return new Configurations(filtered);
}
public List all() {
return Collections.unmodifiableList(configurations);
}
public HttpConfiguration first() {
return configurations.get(0);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy