package au.com.dius.pact.provider.junit.loader;
import au.com.dius.pact.model.Pact;
import au.com.dius.pact.model.PactReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import static java.util.stream.Collectors.toList;
/**
* Implementation of {@link PactLoader} that downloads pacts from given urls
*/
public class PactUrlLoader implements PactLoader {
private static final Logger LOGGER = LoggerFactory.getLogger(PactUrlLoader.class);
private final String[] urls;
public PactUrlLoader(final String[] urls) {
this.urls = urls;
}
public PactUrlLoader(final PactUrl pactUrl) {
this(pactUrl.urls());
}
public List<Pact> load(final String providerName) throws IOException {
return Arrays.stream(urls)
.map(PactReader::loadPact)
.map(obj -> (Pact) obj)
.collect(toList());
}
}