public PactVerifierHostConfig(Uri baseUri, string pactUri, PactBrokerConfig brokerConfig, PactUriOptions pactBrokerUriOptions, Uri providerStateSetupUri, PactVerifierConfig config, IDictionary <string, string> environment) { var pactUriOption = pactUri != null ? $"\"{FixPathForRuby(pactUri)}\" " : ""; var providerStateOption = providerStateSetupUri != null ? $" --provider-states-setup-url \"{providerStateSetupUri.OriginalString}\"" : string.Empty; var pactBrokerOptions = BuildPactBrokerOptions(brokerConfig); var brokerCredentials = pactBrokerUriOptions != null ? !String.IsNullOrEmpty(pactBrokerUriOptions.Username) && !String.IsNullOrEmpty(pactBrokerUriOptions.Password) ? $" --broker-username \"{pactBrokerUriOptions.Username}\" --broker-password \"{pactBrokerUriOptions.Password}\"" : $" --broker-token \"{pactBrokerUriOptions.Token}\"" : string.Empty; var publishResults = config?.PublishVerificationResults == true ? $" --publish-verification-results=true --provider-app-version=\"{config.ProviderVersion}\"" : string.Empty; var customHeaders = this.BuildCustomHeaders(config); var verbose = config?.Verbose == true ? " --verbose true" : string.Empty; var monkeyPatchOption = !string.IsNullOrEmpty(config?.MonkeyPatchFile) ? $" --monkeypatch=\"${config.MonkeyPatchFile}\"" : string.Empty; Script = "pact-provider-verifier"; Arguments = $"{pactUriOption}--provider-base-url \"{baseUri.OriginalString}\"{providerStateOption}{pactBrokerOptions}{brokerCredentials}{publishResults}{customHeaders}{verbose}{monkeyPatchOption}"; WaitForExit = true; Outputters = config?.Outputters; Environment = new Dictionary <string, string> { { "PACT_INTERACTION_RERUN_COMMAND", "To re-run just this failing interaction, change the verify method to '.Verify(description: \"<PACT_DESCRIPTION>\", providerState: \"<PACT_PROVIDER_STATE>\")'. Please do not check in this change!" } }; if (environment != null) { foreach (var envVar in environment) { Environment.Add(envVar.Key, envVar.Value); } } }
private string BuildPactBrokerOptions(PactBrokerConfig config) { if (config == null) { return(string.Empty); } var consumerVersionTags = BuildTags("consumer-version-tag", config.ConsumerVersionTags); var providerVersionTags = BuildTags("provider-version-tag", config.ProviderVersionTags); var consumerVersionSelectors = BuildTags("consumer-version-selector", config.ConsumerVersionSelectors); var enablePending = config.EnablePending ? " --enable-pending" : ""; return($" --pact-broker-base-url \"{config.BrokerBaseUri}\" --provider \"{config.ProviderName}\"{consumerVersionTags}{providerVersionTags}{consumerVersionSelectors}{enablePending}"); }
private string BuildPactBrokerOptions(PactBrokerConfig config) { if (config == null) { return(string.Empty); } var consumerVersionTags = BuildTags("consumer-version-tag", config.ConsumerVersionTags); var providerVersionTags = BuildTags("provider-version-tag", config.ProviderVersionTags); var consumerVersionSelectors = BuildTags("consumer-version-selector", config.ConsumerVersionSelectors); var enablePending = config.EnablePending ? " --enable-pending" : ""; var includeWipPactsSince = !String.IsNullOrEmpty(config.IncludeWipPactsSince) ? $" --include-wip-pacts-since \"{config.IncludeWipPactsSince}\"" : string.Empty; return($" --pact-broker-base-url \"{config.BrokerBaseUri}\" --provider \"{config.ProviderName}\"{consumerVersionTags}{providerVersionTags}{consumerVersionSelectors}{enablePending}{includeWipPactsSince}"); }
private IPactCoreHostConfig GetSubject(Uri baseUri = null, string pactUri = null, PactBrokerConfig brokerConfig = null, PactUriOptions pactBrokerUriOptions = null, Uri providerStateSetupUri = null, PactVerifierConfig verifierConfig = null, IDictionary <string, string> environment = null) { return(new PactVerifierHostConfig( baseUri ?? new Uri("http://localhost:2833"), pactUri, brokerConfig, pactBrokerUriOptions, providerStateSetupUri, verifierConfig, environment)); }