Bikash Behuria
Bikash Behuria

Reputation: 21

PACT Consumer Driven setUP test data in Provider

I am executing some test whereby if Consumer set some ID or any Text which is not exists inside Provider Database then I want to do the below step in Provider Tests

Now I want to know , which field Consumer should use to let Provider know that , there is some prerequisite or pre setup needed before actual API call.

I saw the sample , where there is a setUp : InsertIntoDatabase but doesnot say that how to find which is the input supplied by consumer.

Upvotes: 1

Views: 587

Answers (1)

Bikash Behuria
Bikash Behuria

Reputation: 21

[TestMethod]
        public void Ensure_OfferApi_HonoursPact_WithDeal_ForSendingLatestSoftOffer()
        {
            //Arrange
            var outputter = new CustomOutputter();
            var config = new PactVerifierConfig();
            config.ReportOutputters.Add(outputter);
            IPactVerifier pactVerifier = new PactVerifier(() => { InsertEventIntoDatabase(); }, () => { }, config);

            pactVerifier
                .ProviderState(
                    "Given the Offer Exist in Offer System I WANT TO See Latest SoftOffer",
                    setUp: InsertEventsIntoDatabase);  // in case you want to insert something

            //Act / Assert
            using (var client = new HttpClient { BaseAddress = new Uri("http://localhost:9999") })
            {
                pactVerifier
                   .ServiceProvider("Offer API", client)
                   .HonoursPactWith("Consumer")
                   .PactUri(@"C:\TOSS\TestSample\log\deal-offer.json")
                   .Verify();
            }

            // Verify that verifaction log is also sent to additional reporters defined in the config
            Assert.IsNotNull(outputter.Output);
        }

Lets say the setup function is InsertEventsIntoDatabase and I want to add events what ever consumer is providing via PACT file. so that I dont need to update this code when ever Consumer changes the input.

Upvotes: 0

Related Questions