public async Task RestApiIntegration_Stub_Add_Json_StubIdAlreadyExistsInReadOnlySource_ShouldReturn409() { // arrange var request = new StubDto { Id = "situation-01" }; var existingStub = new StubModel { Id = "situation-01" }; ReadOnlyStubSource .Setup(m => m.GetStubsAsync()) .ReturnsAsync(new[] { existingStub }); // Act var exception = await Assert.ThrowsExceptionAsync <SwaggerException <ProblemDetails> >(() => GetFactory() .StubClient .AddAsync(request)); // Assert Assert.AreEqual(409, exception.StatusCode); }
public async Task UpdateStubAsync_ShouldUpdateStub() { // Arrange const string stubId = "stub-id"; var client = new HttPlaceholderClient(CreateHttpClient(mock => mock .When(HttpMethod.Put, $"{BaseUrl}ph-api/stubs/{stubId}") .WithPartialContent("test-situation") .WithPartialContent("GET") .WithPartialContent("OK my dude!") .Respond(HttpStatusCode.NoContent))); var input = new StubDto { Id = "test-situation", Tenant = "01-get", Conditions = new StubConditionsDto { Method = "GET", Url = new StubUrlConditionDto { Path = "/testtesttest", Query = new Dictionary <string, string> { { "id", "13" } } } }, Response = new StubResponseDto { StatusCode = 200, Text = "OK my dude!" } }; // Act / Assert await client.UpdateStubAsync(input, "stub-id"); }
public async Task RestApiIntegration_Stub_Add_Json_StubIdAlreadyExistsInReadOnlySource_ShouldReturn409() { // arrange var stub = new StubDto { Id = "situation-01", Response = new StubResponseDto() }; var existingStub = new StubModel { Id = "situation-01" }; ReadOnlyStubSource .Setup(m => m.GetStubsAsync()) .ReturnsAsync(new[] { existingStub }); // Act var request = new HttpRequestMessage(HttpMethod.Post, $"{TestServer.BaseAddress}ph-api/stubs") { Content = new StringContent(JsonConvert.SerializeObject(stub), Encoding.UTF8, Constants.JsonMime) }; using var response = await Client.SendAsync(request); // Assert Assert.AreEqual(HttpStatusCode.Conflict, response.StatusCode); }
public async Task <ActionResult> Update([FromBody] StubDto stub, string StubId) { var command = new UpdateStubCommand { StubId = StubId, Stub = Mapper.Map <StubModel>(stub) }; await Mediator.Send(command); return(NoContent()); }
public async Task RestApiIntegration_Stub_Add_Client() { // Arrange var request = new StubDto { Id = "situation-01", Conditions = new StubConditionsDto { Method = "GET", Url = new StubUrlConditionDto { Path = "/users", Query = new Dictionary <string, string> { { "id", "12" }, { "filter", "first_name" } } } }, Response = new StubResponseDto { StatusCode = 200, Text = @"{""first_name"": ""John""}", Headers = new Dictionary <string, string> { { "Content-Type", "application/json" } } } }; // Act await GetFactory() .StubClient .AddAsync(request); // Assert Assert.AreEqual(1, StubSource.StubModels.Count); Assert.AreEqual("situation-01", StubSource.StubModels.First().Id); }
public async Task CreateStubAsync_ShouldCreateStub() { // Arrange var client = new HttPlaceholderClient(CreateHttpClient(mock => mock .When(HttpMethod.Post, $"{BaseUrl}ph-api/stubs") .WithPartialContent("test-situation") .WithPartialContent("GET") .WithPartialContent("OK my dude!") .Respond("application/json", CreateStubResponse))); var input = new StubDto { Id = "test-situation", Tenant = "01-get", Conditions = new StubConditionsDto { Method = "GET", Url = new StubUrlConditionDto { Path = "/testtesttest", Query = new Dictionary <string, string> { { "id", "13" } } } }, Response = new StubResponseDto { StatusCode = 200, Text = "OK my dude!" } }; // Act var result = await client.CreateStubAsync(input); // Assert Assert.IsNotNull(result.Stub); Assert.IsNotNull(result.Metadata); Assert.AreEqual("test-situation", result.Stub.Id); Assert.AreEqual("GET", result.Stub.Conditions.Method); }
public async Task <ActionResult <FullStubDto> > Add([FromBody] StubDto stub) => Ok(await Mediator.Send(new AddStubCommand { Stub = Mapper.Map <StubModel>(stub) }));
public async Task <ActionResult> Update([FromBody] StubDto stub, string stubId) { await Mediator.Send(new UpdateStubCommand(stubId, Mapper.Map <StubModel>(stub))); return(NoContent()); }