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>());
        }
示例#4
0
        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>());
        }