public void Verify_WithProviderStateSet_CallsProviderServiceValidatorWithProviderState() { var httpClient = new HttpClient(); var mockFileSystem = Substitute.For<IFileSystem>(); var mockPactProviderServiceValidator = Substitute.For<IProviderServiceValidator>(); mockFileSystem.File.ReadAllText(Arg.Any<string>()).Returns("{}"); var pactVerifier = new PactVerifier(mockFileSystem, client => mockPactProviderServiceValidator); pactVerifier.ProviderStatesFor("My client") .ProviderState("My Provider State") .ProviderState("My Provider State 2"); pactVerifier.ServiceProvider("Event API", httpClient) .HonoursPactWith("My client") .PactUri("/test.json"); pactVerifier.Verify(); mockPactProviderServiceValidator.Received(1).Validate( Arg.Any<ProviderServicePactFile>(), pactVerifier.ProviderStates); }
public void Verify_WithProviderStateSet_CallsProviderServiceValidatorWithProviderState() { var httpClient = new HttpClient(); var mockFileSystem = Substitute.For <IFileSystem>(); var mockPactProviderServiceValidator = Substitute.For <IProviderServiceValidator>(); mockFileSystem.File.ReadAllText(Arg.Any <string>()).Returns("{}"); var pactVerifier = new PactVerifier(mockFileSystem, client => mockPactProviderServiceValidator); pactVerifier.ProviderStatesFor("My client") .ProviderState("My Provider State") .ProviderState("My Provider State 2"); pactVerifier.ServiceProvider("Event API", httpClient) .HonoursPactWith("My client") .PactUri("/test.json"); pactVerifier.Verify(); mockPactProviderServiceValidator.Received(1).Validate( Arg.Any <ProviderServicePactFile>(), pactVerifier.ProviderStates); }
public void Verify_WithDescriptionAndProviderState_CallsProviderServiceValidatorWith1FilteredInteractions() { var description = "My Description"; var providerState = "My Provider State"; var pactUri = "../../../Consumer.Tests/pacts/my_client-event_api.json"; var pactFileJson = "{ \"provider\": { \"name\": \"Event API\" }, \"consumer\": { \"name\": \"My client\" }, \"interactions\": [{ \"description\": \"My Description\", \"provider_state\": \"My Provider State\" }, { \"description\": \"My Description 2\", \"provider_state\": \"My Provider State\" }, { \"description\": \"My Description\", \"provider_state\": \"My Provider State 2\" }], \"metadata\": { \"pactSpecificationVersion\": \"1.0.0\" } }"; var httpClient = new HttpClient(); var mockFileSystem = Substitute.For <IFileSystem>(); var mockPactProviderServiceValidator = Substitute.For <IProviderServiceValidator>(); mockFileSystem.File.ReadAllText(pactUri).Returns(pactFileJson); var pactVerifier = new PactVerifier(mockFileSystem, client => mockPactProviderServiceValidator); pactVerifier.ProviderStatesFor("My client") .ProviderState("My Provider State") .ProviderState("My Provider State 2"); pactVerifier.ServiceProvider("Event API", httpClient) .HonoursPactWith("My client") .PactUri(pactUri); pactVerifier.Verify(providerDescription: description, providerState: providerState); mockPactProviderServiceValidator.Received(1).Validate( Arg.Is <ProviderServicePactFile>(x => x.Interactions.Count() == 1 && x.Interactions.All(i => i.ProviderState.Equals(providerState) && i.Description.Equals(description))), Arg.Any <ProviderStates>()); }
public void EnsureEventApiHonoursPactWithConsumer() { //Arrange var pactVerifier = new PactVerifier(); pactVerifier .ProviderStatesFor("Consumer") .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(); } }
public void Verify_WithProviderState_CallsProviderServiceValidatorWith2FilteredInteractions() { var providerState = "My Provider State"; var pactUri = "../../../Consumer.Tests/pacts/my_client-event_api.json"; var pactFileJson = "{ \"provider\": { \"name\": \"Event API\" }, \"consumer\": { \"name\": \"My client\" }, \"interactions\": [{ \"description\": \"My Description\", \"provider_state\": \"My Provider State\" }, { \"description\": \"My Description 2\", \"provider_state\": \"My Provider State\" }, { \"description\": \"My Description\", \"provider_state\": \"My Provider State 2\" }], \"metadata\": { \"pactSpecificationVersion\": \"1.0.0\" } }"; var httpClient = new HttpClient(); var mockFileSystem = Substitute.For<IFileSystem>(); var mockPactProviderServiceValidator = Substitute.For<IProviderServiceValidator>(); mockFileSystem.File.ReadAllText(pactUri).Returns(pactFileJson); var pactVerifier = new PactVerifier(mockFileSystem, client => mockPactProviderServiceValidator); pactVerifier.ProviderStatesFor("My client") .ProviderState("My Provider State") .ProviderState("My Provider State 2"); pactVerifier.ServiceProvider("Event API", httpClient) .HonoursPactWith("My client") .PactUri(pactUri); pactVerifier.Verify(providerState: providerState); mockPactProviderServiceValidator.Received(1).Validate( Arg.Is<ProviderServicePactFile>(x => x.Interactions.Count() == 2 && x.Interactions.All(i => i.ProviderState.Equals(providerState))), Arg.Any<ProviderStates>()); }