public static void Main(string[] args) { var outputter = new CustomOutputter(); var config = new PactVerifierConfig(); config.ReportOutputters.Add(outputter); IPactVerifier pactVerifier = new PactVerifier(() => { }, () => { }, config); pactVerifier.ProviderState("Get user with id '1'"); _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); _httpClient.BaseAddress = new System.Uri("http://*****:*****@"\Pact\{0}-{1}.json", ClientName, ProviderName)) .Verify(); // Assert outputter.Should().NotBeNull(); outputter.Output.Should().NotBeNullOrWhiteSpace(); outputter.Output.Should().Contain(string.Format("Verifying a Pact between {0} and {1}", ClientName, ProviderName)); outputter.Output.Should().Contain("status code 200"); System.Console.ReadLine(); }
public void PactProviderVerifyTest() { //set a output folder for logs and pacts retreived PactConfig = new PactVerifierConfig() { LogDir = "../../../Log" }; //set a string output to easily assert against Outputter = new CustomOutputter(); this.PactConfig.ReportOutputters.Add(Outputter); PactVerifier = new PactVerifier(() => { }, () => { }, this.PactConfig); PactFile = Path.Combine("../../../Pacts", $"{Consumer}-{Provider}.json".ToLower()); //verify the interaction PactVerifier .ProviderState("Testing Guid", setUp: GuidSetupState); //Verify will throw if there was a failure PactVerifier .MessageProvider(Provider) .HonoursPactWith(Consumer) .PactUri(PactFile) .Verify(); Assert.Contains($"Verifying a Pact between {Consumer} and {Provider}", Outputter.Output); }
public void EnsureEventApiHonoursPactWithConsumer() { //Arrange var outputter = new CustomOutputter(); var config = new PactVerifierConfig(); config.ReportOutputters.Add(outputter); IPactVerifier pactVerifier = new PactVerifier(() => {}, () => {}, config); pactVerifier .ProviderState( "there are events with ids '45D80D13-D5A2-48D7-8353-CBB4C0EAABF5', '83F9262F-28F1-4703-AB1A-8CFD9E8249C9' and '3E83A96B-2A0C-49B1-9959-26DF23F83AEB'", setUp: InsertEventsIntoDatabase) .ProviderState("there is an event with id '83f9262f-28f1-4703-ab1a-8cfd9e8249c9'", setUp: InsertEventIntoDatabase) .ProviderState("there is one event with type 'DetailsView'", setUp: EnsureOneDetailsViewEventExists); _server = TestServer.Create(app => { app.Use(typeof(AuthorizationTokenReplacementMiddleware), app.CreateDataProtector(typeof(OAuthAuthorizationServerMiddleware).Namespace, "Access_Token", "v1")); var apiStartup = new Startup(); apiStartup.Configuration(app); }); //Act / Assert pactVerifier .ServiceProvider("Event API", _server.HttpClient) .HonoursPactWith("Consumer") .PactUri("../../../Consumer.Tests/pacts/consumer-event_api.json") .Verify(); // Verify that verifaction log is also sent to additional reporters defined in the config Assert.Contains("Verifying a Pact between Consumer and Event API", outputter.Output); }
public void EnsureEventApiHonoursPactWithConsumer() { //Arrange var outputter = new CustomOutputter(); var config = new PactVerifierConfig(); config.ReportOutputters.Add(outputter); IPactVerifier pactVerifier = new PactVerifier(() => {}, () => {}, config); pactVerifier .ProviderState( "there are events with ids '45D80D13-D5A2-48D7-8353-CBB4C0EAABF5', '83F9262F-28F1-4703-AB1A-8CFD9E8249C9' and '3E83A96B-2A0C-49B1-9959-26DF23F83AEB'", setUp: InsertEventsIntoDatabase) .ProviderState("there is an event with id '83f9262f-28f1-4703-ab1a-8cfd9e8249c9'", setUp: InsertEventIntoDatabase) .ProviderState("there is one event with type 'DetailsView'", setUp: EnsureOneDetailsViewEventExists); //Act / Assert using (var testServer = TestServer.Create<Startup>()) { pactVerifier .ServiceProvider("Event API", testServer.HttpClient) .HonoursPactWith("Consumer") .PactUri("../../../Consumer.Tests/pacts/consumer-event_api.json") .Verify(); } // Verify that verifaction log is also sent to additional reporters defined in the config Assert.Contains("Verifying a Pact between Consumer and Event API", outputter.Output); }
public void EnsureEventApiHonoursPactWithConsumer() { //Arrange var outputter = new CustomOutputter(); var config = new PactVerifierConfig(); config.ReportOutputters.Add(outputter); IPactVerifier pactVerifier = new PactVerifier(() => {}, () => {}, config); pactVerifier .ProviderState( "there are events with ids '45D80D13-D5A2-48D7-8353-CBB4C0EAABF5', '83F9262F-28F1-4703-AB1A-8CFD9E8249C9' and '3E83A96B-2A0C-49B1-9959-26DF23F83AEB'", setUp: InsertEventsIntoDatabase) .ProviderState("there is an event with id '83f9262f-28f1-4703-ab1a-8cfd9e8249c9'", setUp: InsertEventIntoDatabase) .ProviderState("there is one event with type 'DetailsView'", setUp: EnsureOneDetailsViewEventExists); //Act / Assert using (var testServer = TestServer.Create <Startup>()) { pactVerifier .ServiceProvider("Event API", testServer.HttpClient) .HonoursPactWith("Consumer") .PactUri("../../../Consumer.Tests/pacts/consumer-event_api.json") .Verify(); } // Verify that verifaction log is also sent to additional reporters defined in the config Assert.Contains("Verifying a Pact between Consumer and Event API", outputter.Output); }
public async Task EnsureWordCountServiceApiHonoursPactWithConsumer() { //Arrange var outputter = new CustomOutputter(); var config = new PactVerifierConfig(); config.ReportOutputters.Add(outputter); IPactVerifier pactVerifier = new PactVerifier(() => { }, () => { }, config); pactVerifier .ProviderState( "there is a count of 1 for words beginning with 'A'", setUp: IncrementWordCountForLetterA); var configuration = new HttpConfiguration(); _server = TestServer.Create(app => { var apiStartup = new Startup(); apiStartup.Configuration(app, configuration); }); //var result = await _server.HttpClient.PutAsync("AddWord/AardVark", null); using (var client = new HttpClient(_server.Handler)) { // requires routing setup in Startup //var response = await client.PutAsync("http://localhost/api/default/AddWord/Ardvark", null); var response = await client.GetAsync("http://localhost/api/default/Count"); var result = await response.Content.ReadAsAsync <string>(); } //Act / Assert pactVerifier .ServiceProvider("WordCountServiceApi", _server.HttpClient) .HonoursPactWith("WordCountWebService") .PactUri("../../../../WordCount.WebService.Tests/bin/pacts/wordcountwebservice-wordcountserviceapi.json") .Verify(); // Verify that verifaction log is also sent to additional reporters defined in the config Assert.Contains("Verifying a Pact between WordCountWebService and WordCountService API", outputter.Output); }
public void EnsureEventApiHonoursPactWithConsumer() { ContextInfo.SetTestContextName(GetType().Name); //Arrange var outputter = new CustomOutputter(); var config = new PactVerifierConfig(); config.ReportOutputters.Add(outputter); IPactVerifier pactVerifier = new PactVerifier(() => {}, () => {}, config); pactVerifier .ProviderState( "there are events with ids '45D80D13-D5A2-48D7-8353-CBB4C0EAABF5', '83F9262F-28F1-4703-AB1A-8CFD9E8249C9' and '3E83A96B-2A0C-49B1-9959-26DF23F83AEB'", setUp: InsertEventsIntoDatabase) .ProviderState("there is an event with id '83f9262f-28f1-4703-ab1a-8cfd9e8249c9'", setUp: InsertEventIntoDatabase) .ProviderState("there is one event with type 'DetailsView'", setUp: EnsureOneDetailsViewEventExists); // todo (HACK): Find a better way to inject pact config into MockProviderNancyBootstrapper MockProviderNancyBootstrapper.PactConfig = new PactConfig(); var builder = new WebHostBuilder(); builder.UseStartup <Startup4ProviderRun>(); _server = new TestServer(builder); //Act / Assert pactVerifier .ServiceProvider("Event API", _server.CreateClient()) .HonoursPactWith("Consumer") .PactUri("../../../Consumer.Tests/pacts/consumer-event_api.json") .Verify(); // Verify that verifaction log is also sent to additional reporters defined in the config Assert.Contains("Verifying a Pact between Consumer and Event API", outputter.Output); }
public void ProviderApiWeb_ClientPact_Compliance() { ContextInfo.SetTestContextName(GetType().Name); //Arrange var outputter = new CustomOutputter(); var config = new PactVerifierConfig() { LogDir = @"c:\logs\PactNetCore" }; config.ReportOutputters.Add(outputter); IPactVerifier pactVerifier = new PactVerifier(() => { }, () => { }, config); pactVerifier .ProviderState( "there are events with ids '45D80D13-D5A2-48D7-8353-CBB4C0EAABF5', '83F9262F-28F1-4703-AB1A-8CFD9E8249C9' and '3E83A96B-2A0C-49B1-9959-26DF23F83AEB'", setUp: InsertEventsIntoDatabase) .ProviderState("there is an event with id '83f9262f-28f1-4703-ab1a-8cfd9e8249c9'", setUp: InsertEventIntoDatabase) .ProviderState("there is one event with type 'DetailsView'", setUp: EnsureOneDetailsViewEventExists); var pactUri = @"C:\Users\kharshaw\Documents\GitHub\Pact-Net-Core\Samples\EventApi\Provider.Api.Web.Tests\Consumer.Tests\pacts\consumer-event_api.json"; //Act / Assert pactVerifier .ServiceProvider("Event API", _client) .HonoursPactWith("Consumer") .PactUri(pactUri) .Verify(); // Verify that verifaction log is also sent to additional reporters defined in the config Assert.Contains("Verifying a Pact between Consumer and Event API", outputter.Output); }