public async Task Should_Update_City_District_When_Requesting_By_Administrator_Client() { var cityDistrictEntity = await InsertCityDistrictEntityAsync(_fixture.AdministratorDbContext); var updateCityDistrictRequest = new UpdateCityDistrictRequest { Id = cityDistrictEntity.Id, Name = "UpdateCityDistrictIntegrationTestNewName", PolishName = "UpdateCityDistrictIntegrationTestNewPolishName", CityId = cityDistrictEntity.CityId }; var updateCityDistrictRequestString = JsonConvert.SerializeObject(updateCityDistrictRequest); var requestContent = new StringContent(updateCityDistrictRequestString, Encoding.UTF8, "application/json"); _fixture.AdministratorHttpClient.DefaultRequestHeaders.Add("api-version", "1"); _fixture.AdministratorHttpClient.DefaultRequestHeaders.Add(HeaderNames.IfMatch, $"\"{Convert.ToBase64String(cityDistrictEntity.RowVersion)}\""); var response = await _fixture.AdministratorHttpClient.PutAsync($"api/cityDistricts/{cityDistrictEntity.Id}", requestContent); var responseContentString = await response.Content.ReadAsStringAsync(); var expectedResponse = await PrepareExpectedResponseAsync(_fixture.AdministratorDbContext, cityDistrictEntity.Id); response.StatusCode.Should().BeEquivalentTo(HttpStatusCode.OK); responseContentString.Should().BeEquivalentTo(expectedResponse); }
public async Task UpdateCityDistrictAsync_Should_Return_OkObjectResult_With_CityDistrictResponse() { var rowVersion = new byte[] { 1, 2, 4, 8, 16, 32, 64 }; var cityDistrictId = Guid.NewGuid(); var updateCityDistrictRequest = new UpdateCityDistrictRequest { Id = cityDistrictId, Name = "Name", PolishName = "PolishName", CityId = Guid.NewGuid(), ParentId = Guid.NewGuid(), NameVariants = new List <string> { "NameVariant" } }; var updateCityDistrictCommand = new UpdateCityDistrictCommand(updateCityDistrictRequest.Id, rowVersion, updateCityDistrictRequest.Name, updateCityDistrictRequest.PolishName, updateCityDistrictRequest.CityId, updateCityDistrictRequest.ParentId, updateCityDistrictRequest.NameVariants); var cityDistrictOutputQuery = new CityDistrictOutputQuery(updateCityDistrictCommand.CityDistrictId, new byte[] { 1, 2, 4, 8, 16, 32, 128 }, updateCityDistrictCommand.Name, updateCityDistrictCommand.PolishName, updateCityDistrictCommand.CityId, updateCityDistrictCommand.ParentId, updateCityDistrictCommand.NameVariants); var cityDistrictResponse = new CityDistrictResponse(cityDistrictOutputQuery.Id, cityDistrictOutputQuery.RowVersion, cityDistrictOutputQuery.Name, cityDistrictOutputQuery.PolishName, cityDistrictOutputQuery.CityId, cityDistrictOutputQuery.ParentId, cityDistrictOutputQuery.NameVariants); _mapperMock.Setup(x => x.Map <UpdateCityDistrictRequest, UpdateCityDistrictCommand>(It.IsAny <UpdateCityDistrictRequest>())) .Returns(updateCityDistrictCommand); _communicationBusMock.Setup(x => x.SendCommandAsync(It.IsAny <UpdateCityDistrictCommand>(), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask); _getCityDistrictQueryHandlerMock .Setup(x => x.HandleAsync(It.IsAny <GetCityDistrictInputQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(cityDistrictOutputQuery); _mapperMock.Setup(x => x.Map <CityDistrictOutputQuery, CityDistrictResponse>(It.IsAny <CityDistrictOutputQuery>())).Returns(cityDistrictResponse); var result = await _controller.UpdateCityDistrictAsync(cityDistrictId, updateCityDistrictRequest, rowVersion); var okObjectResult = result.As <OkObjectResult>(); okObjectResult.Value.Should().BeEquivalentTo(cityDistrictResponse); }
public async Task <IActionResult> UpdateCityDistrictAsync([FromRoute] Guid id, [FromBody] UpdateCityDistrictRequest request, [FromHeader(Name = "If-Match")] byte[] rowVersion) { ValidatePathIdWithRequestBodyId(id, request.Id); request.SetRowVersion(rowVersion); var updateCityDistrictCommand = _mapper.Map <UpdateCityDistrictRequest, UpdateCityDistrictCommand>(request); await _communicationBus.SendCommandAsync(updateCityDistrictCommand); var getCityDistrictOutputQuery = await _getCityDistrictQueryHandler.HandleAsync(new GetCityDistrictInputQuery(updateCityDistrictCommand.CityDistrictId)); var cityDistrictResponse = _mapper.Map <CityDistrictOutputQuery, CityDistrictResponse>(getCityDistrictOutputQuery); return(Ok(cityDistrictResponse)); }