Beispiel #1
0
        public async Task RemoveFromWishList_If_Successfull()
        {
            var options      = TestUtils.GetOptions(nameof(RemoveFromWishList_If_Successfull));
            var mockDateTime = new Mock <IDateTimeProvider>();

            var user = new User
            {
                UserName = "******",
            };
            var beer = new Beer
            {
                Name = "Zagorka",
            };

            var wishList = new WishList
            {
                BeerId = 1,
                UserId = 1,
            };

            using (var arrangeContext = new BeeroverflowContext(options))
            {
                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.Beers.AddAsync(beer);

                await arrangeContext.WishLists.AddAsync(wishList);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new BeeroverflowContext(options))
            {
                var sut = new UserService(assertContext, mockDateTime.Object);
                await sut.RemoveFromWishListAsync(1, user, 1);

                var result = assertContext.WishLists.Where(x => x.BeerId == 1 || x.UserId == 1).FirstOrDefault();

                Assert.IsNull(result);
            }
        }
Beispiel #2
0
        public async Task Return_OneBrewery_When_Exist()
        {
            var options      = TestUtils.GetOptions(nameof(Return_OneBrewery_When_Exist));
            var mockDateTime = new Mock <IDateTimeProvider>();

            var country = new Country
            {
                Name = "Bulgaria"
            };
            var brewery = new Brewery
            {
                Name      = "Ariana",
                CountryId = 1
            };

            var brewery2 = new Brewery
            {
                Name      = "Kamenitza",
                CountryId = 1
            };

            using (var arrangeContext = new BeeroverflowContext(options))
            {
                await arrangeContext.Countries.AddAsync(country);

                await arrangeContext.Breweries.AddAsync(brewery);

                await arrangeContext.Breweries.AddAsync(brewery2);

                await arrangeContext.SaveChangesAsync();
            }
            using (var assertContext = new BeeroverflowContext(options))
            {
                var sut       = new BreweryService(assertContext, mockDateTime.Object);
                var resultDTO = await sut.GetBreweryAsync(2);

                Assert.AreEqual(2, resultDTO.Id);
                Assert.AreEqual("Kamenitza", resultDTO.Name);
            }
        }
        public async Task ReturnAll_If_NotNull()
        {
            var options      = TestUtils.GetOptions(nameof(ReturnAll_If_NotNull));
            var mockDateTime = new Mock <IDateTimeProvider>();

            var country = new Country
            {
                Id   = 1,
                Name = "Bulgaria"
            };
            var country2 = new Country
            {
                Id   = 2,
                Name = "Romania"
            };

            using (var arrangeContext = new BeeroverflowContext(options))
            {
                await arrangeContext.Countries.AddAsync(country);

                await arrangeContext.Countries.AddAsync(country2);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new BeeroverflowContext(options))
            {
                var sut        = new CountryService(assertContext, mockDateTime.Object);
                var resultDTOs = await sut.GetAllCountriesAsync();

                var result = resultDTOs.Select(x => x.Name).ToList();

                Assert.AreEqual(2, result.Count());
                Assert.IsTrue(result.Contains("Bulgaria"));
                Assert.IsTrue(result.Contains("Romania"));
            }
        }
Beispiel #4
0
        public async Task ReturnAllStyles_If_Exist()
        {
            var options      = TestUtils.GetOptions(nameof(ReturnAllStyles_If_Exist));
            var mockDateTime = new Mock <IDateTimeProvider>();

            var style = new Style
            {
                Id   = 1,
                Name = "Pale"
            };
            var style2 = new Style
            {
                Id   = 2,
                Name = "Dark Lagers"
            };

            using (var arrangeContext = new BeeroverflowContext(options))
            {
                await arrangeContext.Styles.AddAsync(style);

                await arrangeContext.Styles.AddAsync(style2);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new BeeroverflowContext(options))
            {
                var sut        = new StyleService(assertContext, mockDateTime.Object);
                var resultDTOs = await sut.GetAllStylesAsync();

                var result = resultDTOs.Select(x => x.Name).ToList();

                Assert.AreEqual(2, result.Count());
                Assert.IsTrue(result.Contains("Pale"));
                Assert.IsTrue(result.Contains("Dark Lagers"));
            }
        }
Beispiel #5
0
        public async Task ReturnDrankList_If_Successfull()
        {
            var options      = TestUtils.GetOptions(nameof(ReturnDrankList_If_Successfull));
            var mockDateTime = new Mock <IDateTimeProvider>();

            var country = new Country
            {
                Name = "Romania"
            };
            var brewery = new Brewery
            {
                Name      = "Ariana",
                CountryId = 1
            };
            var style = new Style
            {
                Name = "Pale"
            };

            var beer = new Beer
            {
                Name      = "Zagorka",
                CountryId = 1,
                BreweryId = 1,
                StyleId   = 1,
                Abv       = 3
            };

            var user = new User
            {
                UserName = "******",
                Country  = "Bulgaristan"
            };

            var drankList = new DrankList
            {
                BeerId = 1,
                UserId = 1,
            };


            using (var arrangeContext = new BeeroverflowContext(options))
            {
                await arrangeContext.Countries.AddAsync(country);

                await arrangeContext.Breweries.AddAsync(brewery);

                await arrangeContext.Styles.AddAsync(style);

                await arrangeContext.Beers.AddAsync(beer);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.DrankLists.AddAsync(drankList);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new BeeroverflowContext(options))
            {
                var sut       = new UserService(assertContext, mockDateTime.Object);
                var resultDTO = await sut.RetreiveDrankListAsync(1);

                var result = resultDTO.ToArray();

                Assert.AreEqual("Zagorka", result[0].Name);
                Assert.AreEqual(1, result.Count());
            }
        }
Beispiel #6
0
        public async Task FilterByStyle_When_AtLeastOneExist()
        {
            var options      = TestUtils.GetOptions(nameof(FilterByStyle_When_AtLeastOneExist));
            var mockDateTime = new Mock <IDateTimeProvider>();

            var country = new Country
            {
                Name = "Romania"
            };

            var brewery = new Brewery
            {
                Name      = "Kamenitza",
                CountryId = 1
            };

            var style = new Style
            {
                Name = "Pale"
            };

            var style2 = new Style
            {
                Name = "Dark Lager"
            };

            var beer = new Beer
            {
                Name      = "Zagorka",
                CountryId = 1,
                BreweryId = 1,
                StyleId   = 2,
                Abv       = 3
            };

            var beer2 = new Beer
            {
                Name      = "Kamenitza",
                CountryId = 1,
                BreweryId = 1,
                StyleId   = 1,
                Abv       = 2
            };

            var beer3 = new Beer
            {
                Name      = "Ariana",
                CountryId = 1,
                BreweryId = 1,
                StyleId   = 1,
                Abv       = 1
            };

            using (var arrangeContext = new BeeroverflowContext(options))
            {
                await arrangeContext.Countries.AddAsync(country);

                await arrangeContext.Breweries.AddAsync(brewery);

                await arrangeContext.Styles.AddAsync(style);

                await arrangeContext.Styles.AddAsync(style2);

                await arrangeContext.Beers.AddAsync(beer);

                await arrangeContext.Beers.AddAsync(beer2);

                await arrangeContext.Beers.AddAsync(beer3);

                await arrangeContext.SaveChangesAsync();
            }
            using (var assertContext = new BeeroverflowContext(options))
            {
                var sut        = new BeerService(assertContext, mockDateTime.Object);
                var resultDTOs = await sut.FilterByStyleAsync("Dark Lager");

                var result = resultDTOs.ToArray();

                Assert.AreEqual(result[0].Id, 1);
                Assert.AreEqual(result[0].Name, "Zagorka");
                Assert.AreEqual(1, resultDTOs.Count);
            }
        }
        public async Task ReturnAllBeers_When_AtLeastOneExist()
        {
            var options      = TestUtils.GetOptions(nameof(ReturnAllBeers_When_AtLeastOneExist));
            var mockDateTime = new Mock <IDateTimeProvider>();

            var country = new Country
            {
                Name = "Romania"
            };
            var brewery = new Brewery
            {
                Name      = "Kamenitza",
                CountryId = 1
            };
            var style = new Style
            {
                Name = "Pale"
            };

            var beer = new Beer
            {
                Name      = "Ariana",
                CountryId = 1,
                BreweryId = 1,
                StyleId   = 1,
            };

            var beer2 = new Beer
            {
                Name      = "Kamenitza",
                CountryId = 1,
                BreweryId = 1,
                StyleId   = 1,
            };

            using (var arrangeContext = new BeeroverflowContext(options))
            {
                await arrangeContext.Countries.AddAsync(country);

                await arrangeContext.Breweries.AddAsync(brewery);

                await arrangeContext.Styles.AddAsync(style);

                await arrangeContext.Beers.AddAsync(beer);

                await arrangeContext.Beers.AddAsync(beer2);

                await arrangeContext.SaveChangesAsync();
            }
            using (var assertContext = new BeeroverflowContext(options))
            {
                var sut        = new BeerService(assertContext, mockDateTime.Object);
                var resultDTOs = await sut.GetAllBeersAsync();

                var result = resultDTOs.Select(x => x.Name).ToList();

                Assert.IsTrue(result.Contains("Ariana"));
                Assert.IsTrue(result.Contains("Kamenitza"));
                Assert.AreEqual(2, result.Count);
            }
        }
        public async Task SortBeersByRating_When_AtLeastOneExist()
        {
            var options      = TestUtils.GetOptions(nameof(SortBeersByRating_When_AtLeastOneExist));
            var mockDateTime = new Mock <IDateTimeProvider>();

            var country = new Country
            {
                Name = "Romania"
            };
            var brewery = new Brewery
            {
                Name      = "Kamenitza",
                CountryId = 1
            };
            var style = new Style
            {
                Name = "Pale"
            };

            var user = new User
            {
                UserName = "******",
                Country  = "Mexico"
            };

            var beer = new Beer
            {
                Name      = "Zagorka",
                CountryId = 1,
                BreweryId = 1,
                StyleId   = 1
            };

            var beer2 = new Beer
            {
                Name      = "Kamenitza",
                CountryId = 1,
                BreweryId = 1,
                StyleId   = 1
            };

            var beer3 = new Beer
            {
                Name      = "Ariana",
                CountryId = 1,
                BreweryId = 1,
                StyleId   = 1
            };

            var rating1 = new Rating
            {
                UserId      = 1,
                BeerId      = 1,
                RatingValue = 4.4
            };

            var rating2 = new Rating
            {
                UserId      = 1,
                BeerId      = 2,
                RatingValue = 2.5
            };

            var rating3 = new Rating
            {
                UserId      = 1,
                BeerId      = 3,
                RatingValue = 3.5
            };

            using (var arrangeContext = new BeeroverflowContext(options))
            {
                await arrangeContext.Countries.AddAsync(country);

                await arrangeContext.Breweries.AddAsync(brewery);

                await arrangeContext.Styles.AddAsync(style);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.Beers.AddAsync(beer);

                await arrangeContext.Beers.AddAsync(beer2);

                await arrangeContext.Beers.AddAsync(beer3);

                await arrangeContext.Ratings.AddAsync(rating1);

                await arrangeContext.Ratings.AddAsync(rating2);

                await arrangeContext.Ratings.AddAsync(rating3);

                await arrangeContext.SaveChangesAsync();
            }
            using (var assertContext = new BeeroverflowContext(options))
            {
                var sut        = new BeerService(assertContext, mockDateTime.Object);
                var resultDTOs = await sut.SortByRatingAsync();

                var result = resultDTOs.ToArray();

                Assert.AreEqual(result[0].Id, 1);
                Assert.AreEqual(result[0].Name, "Zagorka");
                Assert.AreEqual(result[1].Id, 3);
                Assert.AreEqual(result[1].Name, "Ariana");
                Assert.AreEqual(result[2].Id, 2);
                Assert.AreEqual(result[2].Name, "Kamenitza");
                Assert.AreEqual(3, resultDTOs.Count);
            }
        }
Beispiel #9
0
        public async Task ChangeRateForBeer_If_RateForSameUserAlreadyExist()
        {
            var options      = TestUtils.GetOptions(nameof(ChangeRateForBeer_If_RateForSameUserAlreadyExist));
            var mockDateTime = new Mock <IDateTimeProvider>();

            var country = new Country
            {
                Name = "Romania"
            };
            var brewery = new Brewery
            {
                Name      = "Ariana",
                CountryId = 1
            };
            var style = new Style
            {
                Name = "Pale"
            };

            var beer = new Beer
            {
                Name      = "Zagorka",
                CountryId = 1,
                BreweryId = 1,
                StyleId   = 1,
                Abv       = 3
            };

            var user = new User
            {
                UserName = "******",
                Country  = "Bulgaristan"
            };

            var rating = new Rating
            {
                UserId      = 1,
                BeerId      = 1,
                RatingValue = 3.5
            };

            using (var arrangeContext = new BeeroverflowContext(options))
            {
                await arrangeContext.Countries.AddAsync(country);

                await arrangeContext.Breweries.AddAsync(brewery);

                await arrangeContext.Styles.AddAsync(style);

                await arrangeContext.Beers.AddAsync(beer);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.Ratings.AddAsync(rating);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new BeeroverflowContext(options))
            {
                var sut = new BeerService(assertContext, mockDateTime.Object);
                await sut.RateAsync(1, 1, 4.5);

                var check = await assertContext.Ratings.Where(x => x.BeerId == 1).ToListAsync();

                Assert.AreEqual(4.5, check[0].RatingValue);
                Assert.AreEqual(1, check.Count());
            }
        }
        public async Task FailReview_If_BeerDoesNotExist()
        {
            var options      = TestUtils.GetOptions(nameof(FailReview_If_BeerDoesNotExist));
            var mockDateTime = new Mock <IDateTimeProvider>();

            var country = new Country
            {
                Name = "Romania"
            };
            var brewery = new Brewery
            {
                Name      = "Ariana",
                CountryId = 1
            };
            var style = new Style
            {
                Name = "Pale"
            };

            var beer = new Beer
            {
                Name      = "Zagorka",
                CountryId = 1,
                BreweryId = 1,
                StyleId   = 1,
                Abv       = 3
            };

            var user = new User
            {
                UserName = "******",
                Country  = "Bulgaristan"
            };

            var review = new ReviewDTO
            {
                UserId = 1,
                BeerId = 2,
                Text   = "text",
                Title  = "title"
            };

            using (var arrangeContext = new BeeroverflowContext(options))
            {
                await arrangeContext.Countries.AddAsync(country);

                await arrangeContext.Breweries.AddAsync(brewery);

                await arrangeContext.Styles.AddAsync(style);

                await arrangeContext.Beers.AddAsync(beer);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new BeeroverflowContext(options))
            {
                var sut = new BeerService(assertContext, mockDateTime.Object);

                await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => sut.ReviewAsync(review));
            }
        }
        public async Task ReviewBeer_When_ParamsAreValid()
        {
            var options      = TestUtils.GetOptions(nameof(ReviewBeer_When_ParamsAreValid));
            var mockDateTime = new Mock <IDateTimeProvider>();

            var country = new Country
            {
                Name = "Romania"
            };
            var brewery = new Brewery
            {
                Name      = "Ariana",
                CountryId = 1
            };
            var style = new Style
            {
                Name = "Pale"
            };

            var beer = new Beer
            {
                Name      = "Zagorka",
                CountryId = 1,
                BreweryId = 1,
                StyleId   = 1,
                Abv       = 3
            };

            var user = new User
            {
                UserName = "******",
                Country  = "Bulgaristan"
            };

            var review = new ReviewDTO
            {
                UserId = 1,
                BeerId = 1,
                Text   = "text",
                Title  = "title"
            };

            using (var arrangeContext = new BeeroverflowContext(options))
            {
                await arrangeContext.Countries.AddAsync(country);

                await arrangeContext.Breweries.AddAsync(brewery);

                await arrangeContext.Styles.AddAsync(style);

                await arrangeContext.Beers.AddAsync(beer);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new BeeroverflowContext(options))
            {
                var sut    = new BeerService(assertContext, mockDateTime.Object);
                var result = await sut.ReviewAsync(review);

                var check = await assertContext.Reviews.Where(x => x.BeerId == 1).ToListAsync();

                Assert.AreEqual("text", check[0].Text);
                Assert.AreEqual("title", check[0].Title);
                Assert.AreEqual(1, check.Count());
            }
        }