All Downloads are FREE. Search and download functionalities are using the official Maven repository.

au.com.dius.pact.provider.junit.loader.PactUrlLoader Maven / Gradle / Ivy

package au.com.dius.pact.provider.junit.loader;

import au.com.dius.pact.core.model.DefaultPactReader;
import au.com.dius.pact.core.model.Pact;
import au.com.dius.pact.core.model.PactReader;
import au.com.dius.pact.core.model.UrlsSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

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;
    private final UrlsSource pactSource;

  public PactUrlLoader(final String[] urls) {
    this.urls = urls;
    this.pactSource = new UrlsSource(Arrays.stream(urls).collect(Collectors.toList()));
  }

  public PactUrlLoader(final PactUrl pactUrl) {
        this(pactUrl.urls());
    }

  public List load(final String providerName) {
      return Arrays.stream(urls)
        .map(url -> {
          Pact pact = DefaultPactReader.INSTANCE.loadPact(url);
          this.getPactSource().getPacts().put(url, pact);
          return pact;
        })
        .collect(toList());
  }

  @Override
  public UrlsSource getPactSource() {
    return pactSource;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy