Ejemplo n.º 1
0
        public async Task GetRestaurantOverviewList_TwoPerPage()
        {
            using (var dbContext = CreateDbContext())
            {
                //Arrange
                var search = new RestaurantSearchDto
                {
                    NameOrShortDescriptionOrCity = "",
                    PageSize   = 2,
                    PageNumber = 1,
                };
                var repository = helper.CreateRestaurantRepository(dbContext);

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

                search.PageNumber = 2;
                var restaurantPagedListTwo = await repository.GetRestaurantOverviewList(search);

                //Assert
                Assert.Equal(2, restaurantPagedListOne.PageCount);
                Assert.Equal(2, restaurantPagedListOne.Result.Count());
                Assert.Single(restaurantPagedListTwo.Result);
            }
        }
Ejemplo n.º 2
0
        public async Task GetRestaurantOverviewList_OnlyThatContainsBudapest_OnOnePage()
        {
            using (var dbContext = CreateDbContext())
            {
                //Arrange
                var search = new RestaurantSearchDto
                {
                    NameOrShortDescriptionOrCity = "Budapest",
                    PageSize   = TestSeedService.Restaurants.Count,
                    PageNumber = 1,
                };
                var repository = helper.CreateRestaurantRepository(dbContext);

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

                //Assert
                var restaurants = restaurantPagedList.Result.ToList();

                Assert.Equal(2, restaurantPagedList.TotalItemCount);
                Assert.Equal(1, restaurantPagedList.PageCount);
                Assert.Equal(TestSeedService.Restaurants[0].Name, restaurants[0].Name);
                Assert.Equal(TestSeedService.Restaurants[1].Name, restaurants[1].Name);
            }
        }
Ejemplo n.º 3
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);
            }
        }
Ejemplo n.º 4
0
        public async Task GetGuestFavouriteRestaurantList_CarsonFavourites_OnePerPage()
        {
            using (var dbContext = CreateDbContext())
            {
                //Arrange
                string carsonUserId = TestSeedService.Users[0].Id;
                var    search       = new RestaurantSearchDto
                {
                    NameOrShortDescriptionOrCity = "",
                    PageSize   = 1,
                    PageNumber = 1,
                };
                var repository = helper.CreateRestaurantRepository(dbContext);

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

                search.PageNumber = 2;
                var restaurantPagedListTwo = await repository.GetGuestFavouriteRestaurantList(carsonUserId, search);

                //Assert
                Assert.Equal(2, restaurantPagedListOne.PageCount);
                Assert.Single(restaurantPagedListOne.Result);
                Assert.Single(restaurantPagedListTwo.Result);
            }
        }
Ejemplo n.º 5
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);
            }
        }
Ejemplo n.º 6
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);
        }
Ejemplo n.º 7
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);
        }
Ejemplo n.º 8
0
        public async Task GetRestaurantOverviewList_WithNoResult()
        {
            using (var dbContext = CreateDbContext())
            {
                //Arrange
                var search = new RestaurantSearchDto
                {
                    NameOrShortDescriptionOrCity = "Ez nem létezik.",
                    PageSize   = TestSeedService.Restaurants.Count,
                    PageNumber = 1,
                };
                var repository = helper.CreateRestaurantRepository(dbContext);

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

                //Assert
                Assert.Equal(0, restaurantPagedList.TotalItemCount);
            }
        }
Ejemplo n.º 9
0
        public async Task GetGuestFavouriteRestaurantList_ForNonExistingUser()
        {
            using (var dbContext = CreateDbContext())
            {
                //Arrange
                string nonExistingUserId = "70ceb6e6-9a79-4fb8-b325-93453e2021b1";
                var    search            = new RestaurantSearchDto
                {
                    NameOrShortDescriptionOrCity = "",
                    PageSize   = TestSeedService.Restaurants.Count,
                    PageNumber = 1,
                };
                var repository = helper.CreateRestaurantRepository(dbContext);

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

                //Assert
                Assert.Equal(0, restaurantPagedList.TotalItemCount);
            }
        }
Ejemplo n.º 10
0
        public async Task GetGuestFavouriteRestaurantList_CarsonFavourites_OnlyThatContainsGrill_OnOnePage()
        {
            using (var dbContext = CreateDbContext())
            {
                //Arrange
                string carsonUserId = TestSeedService.Users[0].Id;
                var    search       = new RestaurantSearchDto
                {
                    NameOrShortDescriptionOrCity = "Grill",
                    PageSize   = TestSeedService.Restaurants.Count,
                    PageNumber = 1,
                };
                var repository = helper.CreateRestaurantRepository(dbContext);

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

                //Assert
                Assert.Equal(1, restaurantPagedList.TotalItemCount);
                Assert.Equal(1, restaurantPagedList.PageCount);
            }
        }
Ejemplo n.º 11
0
 public async Task <PagedListDto <RestaurantOverviewDto> > GetRestaurantOverviewList([FromQuery] RestaurantSearchDto search)
 {
     return(await restaurantManager.GetRestaurantOverviewList(search));
 }
Ejemplo n.º 12
0
 /// <summary>
 /// A megadott keresési feltételre illeszkedő éttermek áttekintő adatainak lekérése.
 /// </summary>
 /// <param name="search">Az étteremre vonatkozó keresési feltétel.</param>
 /// <returns>Az étteremek áttekintő adatait tartalamazó lista.</returns>
 public async Task <PagedListDto <RestaurantOverviewDto> > GetRestaurantOverviewList(RestaurantSearchDto search)
 {
     return(await restaurantRepository.GetRestaurantOverviewList(search));
 }
Ejemplo n.º 13
0
        /// <summary>
        ///  Az aktuális vendég kedvenc éttermeinek lekérdezése, ami a megadott keresési feltételre illeszkedik.
        /// </summary>
        /// <param name="search">Az étteremre vonatkozó keresési feltétel.</param>
        /// <returns>Az étteremek áttekintő adatait tartalamazó lista.</returns>
        public async Task <PagedListDto <RestaurantOverviewDto> > GetGuestFavouriteRestaurantList(RestaurantSearchDto search)
        {
            string userId = httpContext.GetCurrentUserId();

            return(await restaurantRepository.GetGuestFavouriteRestaurantList(userId, search));
        }
Ejemplo n.º 14
0
 /// <summary>
 /// A megadott keresési feltételre illeszkedő éttermek áttekintő adatainak lekérése.
 /// </summary>
 /// <param name="search">Az étteremre vonatkozó keresési feltétel.</param>
 /// <returns>Az étteremek áttekintő adatait tartalamazó lista.</returns>
 public async Task <PagedListDto <RestaurantOverviewDto> > GetRestaurantOverviewList(RestaurantSearchDto search)
 {
     return(await dbContext.Restaurants
            .Where(r => r.ShowForUsers &&
                   (r.Name.Contains(search.NameOrShortDescriptionOrCity) ||
                    r.ShortDescription.Contains(search.NameOrShortDescriptionOrCity) ||
                    r.Address.City.Contains(search.NameOrShortDescriptionOrCity)))
            .SortBy(search.SortBy)
            .ToRestaurantOverviewDtoPagedList(search));
 }
Ejemplo n.º 15
0
 /// <summary>
 /// A megadott azonosítójú vendég kedvenc éttermeinek lekérdezése, ami a megadott keresési feltételre illeszkedik.
 /// </summary>
 /// <param name="guestId">A vendég azonosítója.</param>
 /// <param name="search">Az étteremre vonatkozó keresési feltétel.</param>
 /// <returns>Az étteremek áttekintő adatait tartalamazó lista.</returns>
 public async Task <PagedListDto <RestaurantOverviewDto> > GetGuestFavouriteRestaurantList(string guestId, RestaurantSearchDto search)
 {
     return(await dbContext.Restaurants
            .Where(r => r.ShowForUsers && r.UsersFavourite.Any(uf => uf.UserId == guestId) &&
                   (r.Name.Contains(search.NameOrShortDescriptionOrCity) ||
                    r.ShortDescription.Contains(search.NameOrShortDescriptionOrCity) ||
                    r.Address.City.Contains(search.NameOrShortDescriptionOrCity)))
            .SortBy(search.SortBy)
            .ToRestaurantOverviewDtoPagedList(search));
 }