public async Task Should_Get_City_Districts_Collection_When_Requesting_By_User_Client() { var cityDistrictEntity = await InsertCityDistrictEntityAsync(_fixture.UserDbContext); var getCityDistrictsRequest = new GetCityDistrictsRequest { Name = cityDistrictEntity.Name, PolishName = cityDistrictEntity.PolishName, CityId = cityDistrictEntity.CityId, Sort = "name:asc", PageSize = 100, Page = 1, ParentId = cityDistrictEntity.ParentId }; _fixture.UserHttpClient.DefaultRequestHeaders.Add("api-version", "1"); var expectedResponse = await PrepareExpectedResponseAsync(_fixture.UserDbContext, getCityDistrictsRequest); var response = await _fixture.UserHttpClient.GetAsync( $"api/cityDistricts?page={getCityDistrictsRequest.Page}&pageSize={getCityDistrictsRequest.PageSize}&sort={getCityDistrictsRequest.Sort}&name={getCityDistrictsRequest.Name}&polishName={getCityDistrictsRequest.PolishName}&cityId={getCityDistrictsRequest.CityId}"); var responseContentString = await response.Content.ReadAsStringAsync(); response.StatusCode.Should().BeEquivalentTo(HttpStatusCode.OK); responseContentString.Should().BeEquivalentTo(expectedResponse); }
public async Task <IActionResult> GetCityDistrictsAsync([FromQuery] GetCityDistrictsRequest request) { var getCityDistrictsInputQuery = _mapper.Map <GetCityDistrictsRequest, GetCityDistrictsInputQuery>(request); var collectionOutputQuery = await _getCityDistrictsQueryHandler.HandleAsync(getCityDistrictsInputQuery); var collectionResponse = _mapper.Map <CollectionOutputQuery <CityDistrictOutputQuery>, CollectionResponse <CityDistrictResponse> >(collectionOutputQuery); return(Ok(collectionResponse)); }
public async Task GetCityDistrictsAsync_Should_Return_OkObjectResult_With_CollectionResponse_With_CityDistrictResponses() { var getCityDistrictsRequest = new GetCityDistrictsRequest { Page = 1, PageSize = 100, CityId = Guid.NewGuid(), Name = "Name", PolishName = "PolishName", Sort = "name:asc" }; var getCityDistrictsInputQuery = new GetCityDistrictsInputQuery(getCityDistrictsRequest.Page, getCityDistrictsRequest.PageSize, getCityDistrictsRequest.Sort, getCityDistrictsRequest.Name, getCityDistrictsRequest.PolishName, getCityDistrictsRequest.CityId, null, new List <Guid>()); var cityDistrictOutputQuery = new CityDistrictOutputQuery(Guid.NewGuid(), Array.Empty <byte>(), "Name", "PolishName", Guid.NewGuid(), Guid.NewGuid(), new List <string> { "NameVariant" }); var cityDistrictOutputQueries = new Collection <CityDistrictOutputQuery> { cityDistrictOutputQuery }; var collectionOutputQuery = new CollectionOutputQuery <CityDistrictOutputQuery>(cityDistrictOutputQueries.Count, cityDistrictOutputQueries); var cityDistrictResponses = cityDistrictOutputQueries.Select(x => new CityDistrictResponse(x.Id, x.RowVersion, x.Name, x.PolishName, x.CityId, x.ParentId, x.NameVariants)); var collectionResponse = new CollectionResponse <CityDistrictResponse>(cityDistrictOutputQueries.Count, cityDistrictResponses); _mapperMock.Setup(x => x.Map <GetCityDistrictsRequest, GetCityDistrictsInputQuery>(It.IsAny <GetCityDistrictsRequest>())) .Returns(getCityDistrictsInputQuery); _getCityDistrictsQueryHandlerMock .Setup(x => x.HandleAsync(It.IsAny <GetCityDistrictsInputQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(collectionOutputQuery); _mapperMock .Setup(x => x.Map <CollectionOutputQuery <CityDistrictOutputQuery>, CollectionResponse <CityDistrictResponse> >( It.IsAny <CollectionOutputQuery <CityDistrictOutputQuery> >())) .Returns(collectionResponse); var result = await _controller.GetCityDistrictsAsync(getCityDistrictsRequest); var okResult = result.As <OkObjectResult>(); okResult.Value.Should().BeEquivalentTo(collectionResponse); }
private static async Task <string> PrepareExpectedResponseAsync(RivaAdministrativeDivisionsDbContext context, GetCityDistrictsRequest getCityDistrictsRequest) { var cityDistrictEntities = await context.CityDistricts .Where(x => x.Name.ToLower().StartsWith(getCityDistrictsRequest.Name.ToLower()) && x.PolishName.ToLower().StartsWith(getCityDistrictsRequest.PolishName.ToLower()) && x.CityId == getCityDistrictsRequest.CityId && x.ParentId == getCityDistrictsRequest.ParentId) .OrderBy(x => x.Name) .Skip(getCityDistrictsRequest.PageSize.Value * (getCityDistrictsRequest.Page.Value - 1)) .Take(getCityDistrictsRequest.PageSize.Value) .ToListAsync(); var cityDistrictResponses = cityDistrictEntities.Select(x => new CityDistrictResponse(x.Id, x.RowVersion, x.Name, x.PolishName, x.CityId, x.ParentId, x.NameVariants.Select(nv => nv.Value))); var totalCount = await context.CityDistricts.LongCountAsync(x => x.Name.ToLower().StartsWith(getCityDistrictsRequest.Name.ToLower()) && x.PolishName.ToLower().StartsWith(getCityDistrictsRequest.PolishName.ToLower()) && x.CityId == getCityDistrictsRequest.CityId && x.ParentId == getCityDistrictsRequest.ParentId); var collectionResponse = new CollectionResponse <CityDistrictResponse>(totalCount, cityDistrictResponses); var settings = new JsonSerializerSettings { Formatting = Formatting.Indented, ContractResolver = new DefaultTestPlatformContractResolver { NamingStrategy = new CamelCaseNamingStrategy() } }; return(JsonConvert.SerializeObject(collectionResponse, settings)); }