public static void CreateOn(IMockProviderService customerApi) { customerApi .Given("There is a customer with ID tester") .UponReceiving("A GET request to retrieve the customer") .With(new ProviderServiceRequest { Method = HttpVerb.Get, Path = "/api/customers/tester", Headers = new Dictionary<string, string> { {"Accept", "application/json"}, {"Another", "header"} } }) .WillRespondWith(new ProviderServiceResponse { Status = (int)HttpStatusCode.OK, Headers = new Dictionary<string, string> { {"Content-Type", "application/json; charset=utf-8" }, {"Another", "header"} }, Body = new //NOTE: Note the case sensitivity here, the body will be serialised as per the casing defined { Id = "tester", FirstName = "Totally", LastName = "Awesome" } }); //NOTE: WillRespondWith call must come last as it will register the interaction }
public static void CreateOn(IMockProviderService customerApi) { customerApi .Given("Version is 1.2.3.4") .UponReceiving("A GET request to retrieve the version") .With(new ProviderServiceRequest { Method = HttpVerb.Get, Path="/api/version", Headers=new Dictionary<string, string> { {"Accept", "application/json"}, {"Another", "header" } } }) .WillRespondWith(new ProviderServiceResponse { Status = (int)HttpStatusCode.OK, Headers = new Dictionary<string, string> { {"Content-Type", "application/json; charset=utf-8" }, {"Another", "header"} }, Body = new { Build="1.2.3.4", Date="2015-09-17T20:29:13" } }); }
public ClientTests(OrderConsumerPact data) { _mockProviderService = data.MockProviderService; _mockProviderService.ClearInteractions(); var httpClient = new HttpClient { BaseAddress = new Uri(data.MockProviderServiceBaseUri) }; _sut = new Client(httpClient); }
public void Init() { _fixture = new ExampleApiFixture(); _mockProviderService = _fixture.MockProviderService; var factory = new Mock <IHttpClientFactory>(); factory.Setup(c => c.CreateClient("ExampleApi")).Returns(new HttpClient() { BaseAddress = new Uri(_mockProviderService.BaseAddress) }); _factory = factory.Object; }
public ConsumerEventApiPact() { PactBuilder = new PactBuilder(new PactConfig { SpecificationVersion = "2.0.0", LogDir = $"..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}logs{Path.DirectorySeparatorChar}", PactDir = $"..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}pacts{Path.DirectorySeparatorChar}" }) .ServiceConsumer("Event API Consumer") .HasPactWith("Event API"); MockProviderService = PactBuilder.MockService(MockServerPort); }
public ConsumerEventApiPact() { PactBuilder = new PactBuilder(new PactConfig { SpecificationVersion = "2.0.0", LogDir = $"..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}logs{Path.DirectorySeparatorChar}", PactDir = $"..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}pacts{Path.DirectorySeparatorChar}" // TODO how to publish }) .ServiceConsumer("Consumer") .HasPactWith("Provider"); MockProviderService = PactBuilder.MockService(MockServerPort, false, IPAddress.Any); }
public PactTestFixture() { var pactConfig = new PactConfig { SpecificationVersion = "2.0.0", PactDir = @"..\..\..\..\..\pacts", LogDir = @".\pact_logs" }; PactBuilder = new PactBuilder(pactConfig); PactBuilder.ServiceConsumer("Consumer").HasPactWith("Provider"); MockProviderService = PactBuilder.MockService(MockServicePort); }
public IMockProviderService MockService(int port) { if (_mockProviderService != null) { _mockProviderService.Stop(); } _mockProviderService = _mockProviderServiceFactory(port); _mockProviderService.Start(); return(_mockProviderService); }
public IMockProviderService MockService(int port, bool enableSsl = false) { if (_mockProviderService != null) { _mockProviderService.Stop(); } _mockProviderService = _mockProviderServiceFactory(port, enableSsl); _mockProviderService.Start(); return _mockProviderService; }
public CardApiPact() { PactBuilder = new PactBuilder( new PactConfig { PactDir = @"D:/pacts/", LogDir = @"D:/logs/" } ); PactBuilder .ServiceConsumer("Consumer") .HasPactWith("Cards Api"); MockProviderService = PactBuilder.MockService(MockServicePort); }
public IMockProviderService MockService(int port, bool enableSsl = false) { if (_mockProviderService != null) { _mockProviderService.Stop(); } _mockProviderService = _mockProviderServiceFactory(port, enableSsl); _mockProviderService.Start(); return(_mockProviderService); }
public UserClientConsumerPact() { PactBuilder = new PactBuilder(new PactConfig { SpecificationVersion = "2.0.0", LogDir = $"..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}logs{Path.DirectorySeparatorChar}", PactDir = $"..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}pacts{Path.DirectorySeparatorChar}" }) .ServiceConsumer("User API Consumer") .HasPactWith("User API"); MockProviderService = PactBuilder.MockService(MockServerPort, false, IPAddress.Any); }
public void OneTimeSetUp() { _pactBuilder = new PactBuilder(new PactConfig { PactDir = @"c:\temp\pact\pactDir", LogDir = @"c:\temp\pact\logs" }); _pactBuilder .ServiceConsumer(nameof(PactConsumer)) .HasPactWith("PactProducer"); _mockProviderService = _pactBuilder.MockService(MockServerPort); _mockProviderService.ClearInteractions(); }
public ConsumeHttpSequencerPact(string consumerName, int port) { PactBuilder = new PactBuilder(new PactConfig { Outputters = new[] { new ConsoleOutputter() }, SpecificationVersion = "2.0.0" }); //Configures the Specification Version PactBuilder .ServiceConsumer(consumerName) .HasPactWith("Something API"); //needs elevated, or port opening MockProviderService = PactBuilder.MockService(port, false, IPAddress.Any); }
public APIPact() { _pactBuilder = new PactBuilder(new PactConfig { PactDir = @"..\..\..\..\pacts", LogDir = @"..\..\..\..\logs" }); _pactBuilder.ServiceConsumer("Consumer").HasPactWith("API"); MockProviderService = _pactBuilder.MockService(MockServerPort); }
public void Able_To_Retrieve_Consumers() { mockProviderService = consumerPact.MockProviderService; mockProviderServiceBaseUri = consumerPact.MockProviderServiceBaseUri; consumerPact.MockProviderService.ClearInteractions(); mockProviderService .Given("Get customers'") .UponReceiving("A GET request to retrieve the customers") .With(new ProviderServiceRequest { Method = HttpVerb.Get, Path = "/customers", Headers = new Dictionary <string, object>() { { "Accept", "application/json" } } }) .WillRespondWith(new ProviderServiceResponse { Status = 200, Body = new GetCustomersResponse { _Embedded = new Embedded { Customer = new Customer[] { new Customer { FirstName = "Tester", LastName = "Toster" } } } }, Headers = new Dictionary <string, object>() { { "Content-Type", "application/json; charset=utf-8" } } }); var consumer = new WebShopApiClient(new Uri(mockProviderServiceBaseUri), "user", "password"); var result = consumer.GetCustomers().Result; Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(GetCustomersResponse)); mockProviderService.VerifyInteractions(); consumerPact.Dispose(); }
public FailureIntegrationTestsMyApiPact() { var pactConfig = new PactConfig(); PactBuilder = new PactBuilder((port, enableSsl, providerName) => new MockProviderService( baseUri => new RubyHttpHost(baseUri, "MyApi", pactConfig), port, enableSsl, baseUri => new AdminHttpClient(baseUri))) .ServiceConsumer("FailureIntegrationTests") .HasPactWith("MyApi"); MockProviderService = PactBuilder.MockService(MockServerPort); }
public PactConfigurator() { //Create and Config PactBuilder PactBuilder = new PactBuilder(new PactConfig { SpecificationVersion = "2.0.0", PactDir = @"..\..\..\..\..\pacts", LogDir = @".\pactlogs" }).ServiceConsumer("Consumer2") .HasPactWith("Provider"); //Using IPactBuilder to Mock a PactMockProvider MockProviderService = PactBuilder.MockService(MockServerPort); }
public IntegrationTestsMyApiPact() { var pactConfig = new PactConfig(); PactBuilder = new PactBuilder((port, enableSsl, consumerName, providerName, host, jsonSerializerSettings) => new MockProviderService( baseUri => new RubyHttpHost(baseUri, "MyConsumer", "MyApi", pactConfig, host), port, enableSsl, baseUri => new AdminHttpClient(baseUri, jsonSerializerSettings))) .ServiceConsumer("IntegrationTests") .HasPactWith("MyApi"); MockProviderService = PactBuilder.MockService(MockServerPort); }
static void Main(string[] args) { var consumerPact = new ConsumerMyApiPact(); _mockProviderService = consumerPact.MockProviderService; _mockProviderServiceBaseUri = consumerPact.MockProviderServiceBaseUri; consumerPact.MockProviderService.ClearInteractions(); //NOTE: Clears any previously registered interactions before the test is run _mockProviderService .Given("Get user with id '1'") .UponReceiving("A GET request to retrieve the user") .With(new ProviderServiceRequest { Method = HttpVerb.Get, Path = "/user/1", Headers = new Dictionary <string, string> { { "Accept", "application/json" } } }) .WillRespondWith(new ProviderServiceResponse { Status = 200, Headers = new Dictionary <string, string> { { "Content-Type", "application/json; charset=utf-8" } }, Body = new //NOTE: Note the case sensitivity here, the body will be serialised as per the casing defined { id = 1, firstName = "Tanmoy", lastName = "Saha" } }); //NOTE: WillRespondWith call must come last as it will register the interaction var consumer = new UserApiClient(_mockProviderServiceBaseUri); //Act var result = consumer.GetUsers(1); //Assert result.Should().NotBeNull(); _mockProviderService.VerifyInteractions(); //NOTE: Verifies that interactions registered on the mock provider are called once and only once consumerPact.Dispose(); }
public CustomerApiPact() { PactBuilder = new PactBuilder(new PactConfig { SpecificationVersion = "2.0.0", PactDir = @"..\..\..\pacts", LogDir = @".\pact_logs" }); PactBuilder .ServiceConsumer("CUSTOMER CONSUMER") .HasPactWith("CUSTOMER PROVIDER"); MockProviderService = PactBuilder.MockService(MockServerPort); }
public OrdersConsumerPact() { PactBuilder = new PactBuilder(new PactConfig { SpecificationVersion = "2.0.0", PactDir = TestEnvironment.PactsDirectory, LogDir = TestEnvironment.LogsDirectory }); PactBuilder .ServiceConsumer(consumerName: "OrdersService") .HasPactWith(providerName: "ShipmentService"); ShipmentMockProviderService = PactBuilder.MockService(TestEnvironment.ShipmentServiceUri.Port); }
public ConsumerApiPact() { PactBuilder = new PactBuilder(new PactConfig { SpecificationVersion = "2.0.0", //LogDir = $"..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}logs{Path.DirectorySeparatorChar}", //PactDir = $"..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}pacts{Path.DirectorySeparatorChar}" LogDir = $"D:/Demo/Pact/pact_log", PactDir = $"D:/Demo/Pact/pacts" }) .ServiceConsumer("Customer API Consumer") .HasPactWith("Customer API"); MockProviderService = PactBuilder.MockService(MockServerPort, false, IPAddress.Any); }
public ConsumerEventApiPact() { if (!File.Exists(".\\pact\\bin\\pact-mock-service.bat")) { throw new Exception("Please run '.\\Build\\Download-Standalone-Core.ps1' from the project root to download the standalone mock provider service and then Rebuild solution"); } PactBuilder = new PactBuilder(new PactConfig { SpecificationVersion = "2.0.0" }) .ServiceConsumer("Event API Consumer") .HasPactWith("Event API"); MockProviderService = PactBuilder.MockService(MockServerPort); }
public GuitarServicePact() { var pactConfig = new PactConfig { SpecificationVersion = "2.0.0", PactDir = @"C:\Pacts\GuitarService\pacts", LogDir = @"C:\Pacts\GuitarService\logs" }; PactBuilder = new PactBuilder(pactConfig); PactBuilder.ServiceConsumer("GuitarsConsumer").HasPactWith("GuitarsProvider"); MockProviderService = PactBuilder.MockService(MockServerPort); }
public void FixtureSetup() { var pactConfig = new PactConfig { PactDir = $"{ PactConstants.PactRootLocation}\\{PactConstants.PactProviderNames.SqsPocApi}\\{PactConstants.PactConsumerNames.Product}", LogDir = $"{ PactConstants.PactRootLocation }\\logs" }; _pactBuilder = new PactBuilder(pactConfig); _pactBuilder .ServiceConsumer(PactConstants.PactConsumerNames.Product) .HasPactWith(PactConstants.PactProviderNames.SqsPocApi); _mockProviderService = _pactBuilder.MockService( MockSqsApiPort, Constants.JsonSettings); }
public ConsumerPactClassFixture() { // Using Spec version 2.0.0 more details at https://goo.gl/UrBSRc var pactConfig = new PactConfig { SpecificationVersion = "2.0.0", PactDir = @"..\..\..\..\pacts", LogDir = @".\pact_logs" }; PactBuilder = new PactBuilder(pactConfig); PactBuilder.ServiceConsumer("Consumer") .HasPactWith("Provider"); MockProviderService = PactBuilder.MockService(MockServerPort); }
public UserConsumerPact() { PactBuilder = new PactBuilder ( new PactConfig { PactDir = $@"{AppDomain.CurrentDomain.BaseDirectory}\Pact", LogDir = $@"{AppDomain.CurrentDomain.BaseDirectory}\Pact" } ); PactBuilder .ServiceConsumer(ClientName) .HasPactWith(ProviderName); MockProviderService = PactBuilder.MockService(MockServerPort); }
public ConsumerPactClassFixture() { //Create Pact config var pactConfig = new PactConfig { SpecificationVersion = "2.0.0", PactDir = @"..\..\..\..\..\pacts", LogDir = @".\pacts_logs" }; PactBuilder = new PactBuilder(pactConfig); PactBuilder.ServiceConsumer("Consumer").HasPactWith("Provider"); //Create an instance of the MockService using the config MockProviderService = PactBuilder.MockService(MockServerPort); }
public void Visit(IMockProviderService mockProvider) { var pathMatch = Matchers.Url($"/weatherforecast/1", "/weatherforecast/{number}"); mockProvider .Given($"no forecast with id '{_forecastId}'") .UponReceiving("a DELETE request to set a forecast") .With(new ProviderServiceRequest { Method = HttpVerb.Delete, Path = pathMatch }) .WillRespondWith(new ProviderServiceResponse { Status = 404 }); }
public IMockProviderService MockService(int port, JsonSerializerSettings jsonSerializerSettings, bool enableSsl = false, bool bindOnAllAdapters = false) { if (_mockProviderService != null) { _mockProviderService.Stop(); } if (jsonSerializerSettings != null) { JsonConfig.ApiSerializerSettings = jsonSerializerSettings; } _mockProviderService = _mockProviderServiceFactory(port, enableSsl, ProviderName, bindOnAllAdapters); _mockProviderService.Start(); return(_mockProviderService); }
public ValuesApiMock() { var pactConfig = new PactConfig { SpecificationVersion = "2.0.0", PactDir = @"..\..\..\pact", LogDir = @".\pact_logs" }; _pactBuilder = new PactBuilder(pactConfig) .ServiceConsumer("Values") .HasPactWith("otherApi"); MockProviderService = _pactBuilder.MockService(ServicePort, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); }
public DateFormatterWebApiConsumerPact() { string pactDir = System.Text.RegularExpressions.Regex.Replace(ConfigurationManager.AppSettings["DateFormatter.WebApiPact.Dir"], @"^.\\", TestContext.CurrentContext.WorkDirectory + "/"); string logDir = System.Text.RegularExpressions.Regex.Replace(ConfigurationManager.AppSettings["DateFormatter.WebApiPact.LogDir"], @"^.\\", TestContext.CurrentContext.WorkDirectory + "/"); //Nuint resharper runner hack Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); PactBuilder = new PactBuilder(new PactConfig { PactDir = pactDir, LogDir = logDir, SpecificationVersion = "2.0.0" }); PactBuilder .ServiceConsumer("SampleApp.ConsoleApp") .HasPactWith("DateFormatter.WebApi"); MockProviderService = PactBuilder.MockService(MockServerPort, new JsonSerializerSettings { }); }
public IMockProviderService MockService(int port) { if (_mockProviderService != null) { _mockProviderService.Stop(); } _mockProviderService = _mockProviderServiceFactory(port); _mockProviderService.Start(); return _mockProviderService; }
public IMockProviderService MockService(int port, JsonSerializerSettings jsonSerializerSettings, bool enableSsl = false) { if (_mockProviderService != null) { _mockProviderService.Stop(); } if (jsonSerializerSettings != null) { JsonConfig.ApiSerializerSettings = jsonSerializerSettings; } _mockProviderService = _mockProviderServiceFactory(port, enableSsl, ProviderName); _mockProviderService.Start(); return _mockProviderService; }