예제 #1
0
        public async Task GetRestaurantOverviewList_AllAvailable_OnOnePage_SortBy(RestaurantSortBy sortBy)
        {
            using (var dbContext = CreateDbContext())
            {
                //Arrange
                int restaurantsCount = TestSeedService.Restaurants.Count;
                var search           = new RestaurantSearchDto
                {
                    NameOrShortDescriptionOrCity = "",
                    SortBy     = sortBy.ToString(),
                    PageSize   = restaurantsCount,
                    PageNumber = 1,
                };
                var orderedRestaurantList = TestSeedService.Restaurants.SortByAll(sortBy);
                var repository            = helper.CreateRestaurantRepository(dbContext);

                //Act
                var restaurantPagedList = await repository.GetRestaurantOverviewList(search);

                //Assert
                Assert.Equal(restaurantsCount, restaurantPagedList.TotalItemCount);
                Assert.Equal(1, restaurantPagedList.PageCount);
                Assert.True(restaurantPagedList.Result.First().Name == orderedRestaurantList.First().Name);
                Assert.True(restaurantPagedList.Result.Last().Name == orderedRestaurantList.Last().Name);
            }
        }
예제 #2
0
        public async Task GetRestaurantOverviewList_AllAvailable_OnOnePage_SortBy(RestaurantSortBy sortBy)
        {
            //Arrange
            int restaurantsCount = TestSeedService.Restaurants.Count;
            var search           = new RestaurantSearchDto
            {
                NameOrShortDescriptionOrCity = "",
                SortBy     = sortBy.ToString(),
                PageSize   = restaurantsCount,
                PageNumber = 1,
            };
            var orderedRestaurantList = TestSeedService.Restaurants.SortByAll(sortBy);
            var client = webApiServer.CreateClient();

            //Act
            var restaurantOverviewListResponse = await client.GetAsync("/api/restaurant?" + search.ToQueryParams());

            var restaurantPagedList = await restaurantOverviewListResponse.Content.ReadFromJsonAsync <PagedListDto <RestaurantOverviewDto> >();

            //Assert
            Assert.Equal(HttpStatusCode.OK, restaurantOverviewListResponse.StatusCode);
            Assert.Equal(TestSeedService.Restaurants.Count, restaurantPagedList.TotalItemCount);
            Assert.Equal(1, restaurantPagedList.PageCount);
            Assert.True(restaurantPagedList.Result.First().Name == orderedRestaurantList.First().Name);
            Assert.True(restaurantPagedList.Result.Last().Name == orderedRestaurantList.Last().Name);
        }
예제 #3
0
        public async Task GetGuestFavouriteRestaurantList_CarsonFavourites_OnOnePage_SortBy(RestaurantSortBy sortBy)
        {
            using (var dbContext = CreateDbContext())
            {
                //Arrange
                string carsonUserId = TestSeedService.Users[0].Id;
                var    search       = new RestaurantSearchDto
                {
                    NameOrShortDescriptionOrCity = "",
                    SortBy     = sortBy.ToString(),
                    PageSize   = TestSeedService.Restaurants.Count,
                    PageNumber = 1,
                };
                var orderedRestaurantList = TestSeedService.Restaurants.SortByCarsonFavourite(sortBy);
                var repository            = helper.CreateRestaurantRepository(dbContext);

                //Act
                var restaurantPagedList = await repository.GetGuestFavouriteRestaurantList(carsonUserId, search);

                //Assert
                Assert.Equal(2, restaurantPagedList.TotalItemCount);
                Assert.Equal(1, restaurantPagedList.PageCount);
                Assert.True(restaurantPagedList.Result.First().Name == orderedRestaurantList.First().Name);
                Assert.True(restaurantPagedList.Result.Last().Name == orderedRestaurantList.Last().Name);
            }
        }
예제 #4
0
        public async Task GetGuestFavouriteRestaurantList_CarsonFavourites_OnOnePage_SortBy(RestaurantSortBy sortBy)
        {
            //Arrange
            int restaurantsCount = TestSeedService.Restaurants.Count;
            var search           = new RestaurantSearchDto
            {
                NameOrShortDescriptionOrCity = "",
                SortBy     = sortBy.ToString(),
                PageSize   = restaurantsCount,
                PageNumber = 1,
            };
            var orderedRestaurantList = TestSeedService.Restaurants.SortByCarsonFavourite(sortBy);
            var accessToken           = await authServer.GetAccessToken("*****@*****.**", "Test.54321"); //Vendég felhasználó

            var client = webApiServer.CreateClient();

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

            //Act
            var favouriteRestaurantListResponse = await client.GetAsync("/api/restaurant/favourite?" + search.ToQueryParams());

            var restaurantPagedList = await favouriteRestaurantListResponse.Content.ReadFromJsonAsync <PagedListDto <RestaurantOverviewDto> >();

            //Assert
            Assert.Equal(HttpStatusCode.OK, favouriteRestaurantListResponse.StatusCode);
            Assert.Equal(2, restaurantPagedList.TotalItemCount);
            Assert.Equal(1, restaurantPagedList.PageCount);
            Assert.True(restaurantPagedList.Result.First().Name == orderedRestaurantList.First().Name);
            Assert.True(restaurantPagedList.Result.Last().Name == orderedRestaurantList.Last().Name);
        }
예제 #5
0
        public static IReadOnlyList <Restaurant> SortByCarsonFavourite(this IReadOnlyList <Restaurant> r, RestaurantSortBy sortBy)
        {
            switch (sortBy)
            {
            case RestaurantSortBy.NAME_ASC:
                return(new List <Restaurant>()
                {
                    r[0], r[1]
                });

            case RestaurantSortBy.NAME_DESC:
                return(new List <Restaurant>()
                {
                    r[1], r[0]
                });

            case RestaurantSortBy.RATING_ASC:
                return(new List <Restaurant>()
                {
                    r[1], r[0]
                });

            case RestaurantSortBy.RATING_DESC:
                return(new List <Restaurant>()
                {
                    r[0], r[1]
                });

            case RestaurantSortBy.REVIEW_COUNT_ASC:
                return(new List <Restaurant>()
                {
                    r[1], r[0]
                });

            case RestaurantSortBy.REVIEW_COUNT_DESC:
                return(new List <Restaurant>()
                {
                    r[0], r[1]
                });

            default:
                return(r);
            }
        }