Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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));
        }