示例#1
0
        public async Task PactBrokerReturnsNonSuccessStatusCode()
        {
            var fakeHttpMessageHandler = new FakePactBrokerMessageHandler {
                StatusCodeToReturn = System.Net.HttpStatusCode.NotFound
            };

            var config = new PactVerifierConfig
            {
                ProviderVersion  = "1.0",
                PactBrokerClient = new HttpClient(fakeHttpMessageHandler)
                {
                    BaseAddress = new Uri("http://local-pact-broker")
                }
            };
            var mockConsumer = new PactVerifier(config);

            try
            {
                await mockConsumer.PublishVerificationResultsAsync(_pact, new List <FailedInteraction>());
            }
            catch (PactException e)
            {
                Assert.AreEqual("Publishing verification results failed. Pact Broker returned NotFound", e.Message);
                throw;
            }
        }
示例#2
0
        public async Task PublishingFailedTests()
        {
            var fakeHttpMessageHandler = new FakePactBrokerMessageHandler();

            fakeHttpMessageHandler.Configure(HttpMethod.Post, "http://publish/").RespondsWith(HttpStatusCode.Created);

            await PactVerifier.PublishVerificationResultsAsync(
                _pact,
                new List <Test> {
                new Test {
                    Description = "test1"
                },
                new Test {
                    Description = "test2", Issues = new List <string> {
                        "Something failed"
                    }
                }
            },
                "1.0",
                new HttpClient(fakeHttpMessageHandler) { BaseAddress = new Uri("http://local-pact-broker") },
                "http://publish");

            var sentVerificationResults = JsonConvert.DeserializeObject <VerificationResults>(fakeHttpMessageHandler.GetStatus(HttpMethod.Post, "http://publish/").SentRequestContents.First().Value);

            Assert.IsFalse(sentVerificationResults.Success);
            Assert.AreEqual("1.0", sentVerificationResults.ProviderApplicationVersion);
            Assert.AreEqual(_pact.Provider.Name, sentVerificationResults.ProviderName);
            Assert.AreEqual(2, sentVerificationResults.TestResults.Summary.TestCount);
            Assert.AreEqual(1, sentVerificationResults.TestResults.Summary.FailureCount);
            Assert.AreEqual("passed", sentVerificationResults.TestResults.Tests.First(t => t.Description == "test1").Status);
            Assert.AreEqual("failed", sentVerificationResults.TestResults.Tests.First(t => t.Description == "test2").Status);
            Assert.AreEqual("Something failed", sentVerificationResults.TestResults.Tests.First(t => t.Description == "test2").Issues.First());
        }
示例#3
0
        public async Task PactBrokerReturnsNonSuccessStatusCode()
        {
            var fakeHttpMessageHandler = new FakePactBrokerMessageHandler();

            fakeHttpMessageHandler.Configure(HttpMethod.Post, "http://publish/").RespondsWith(HttpStatusCode.NotFound);
            try
            {
                await PactVerifier.PublishVerificationResultsAsync(
                    _pact,
                    new List <Test>(),
                    "1.0",
                    new HttpClient(fakeHttpMessageHandler) { BaseAddress = new Uri("http://local-pact-broker") },
                    "http://publish");
            }
            catch (PactException e)
            {
                Assert.AreEqual("Publishing verification results failed. Pact Broker returned NotFound", e.Message);
                throw;
            }
        }
示例#4
0
        public async Task SuccessfulPublication()
        {
            var fakeHttpMessageHandler = new FakePactBrokerMessageHandler();

            var config = new PactVerifierConfig
            {
                ProviderVersion  = "1.0",
                PactBrokerClient = new HttpClient(fakeHttpMessageHandler)
                {
                    BaseAddress = new Uri("http://local-pact-broker")
                }
            };
            var mockConsumer = new PactVerifier(config);

            await mockConsumer.PublishVerificationResultsAsync(_pact, new List <FailedInteraction>());

            var sentVerificationResults = JsonConvert.DeserializeObject <VerificationResults>(fakeHttpMessageHandler.SentRequestContents.First().Value);

            Assert.IsTrue(sentVerificationResults.Success);
            Assert.AreEqual(config.ProviderVersion, sentVerificationResults.ProviderApplicationVersion);
            Assert.AreEqual(_pact.Provider.Name, sentVerificationResults.ProviderName);
            Assert.IsFalse(sentVerificationResults.FailedInteractions.Any());
        }