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