コード例 #1
0
        public void ReturnCorrectBeers_When_ParamsValid()
        {
            var options  = Utils.GetOptions(nameof(ReturnCorrectBeers_When_ParamsValid));
            var country  = TestsModelsSeeder.SeedCountry();
            var beerType = TestsModelsSeeder.SeedBeerType();
            var brewery  = TestsModelsSeeder.SeedBrewery();
            var beer     = TestsModelsSeeder.SeedBeer();
            var beer2    = TestsModelsSeeder.SeedBeer2();
            var beer3    = TestsModelsSeeder.SeedBeer3();

            using (var arrangeContext = new BeerOverflowContext(options))
            {
                arrangeContext.Countries.Add(country);
                arrangeContext.BeerTypes.Add(beerType);
                arrangeContext.Breweries.Add(brewery);
                arrangeContext.Add(beer);
                arrangeContext.Add(beer2);
                arrangeContext.Add(beer3);
                arrangeContext.SaveChanges();
            }

            using (var assertContext = new BeerOverflowContext(options))
            {
                var sut    = new BeerServices(assertContext);
                var result = sut.GetAllBeers().ToList();
                Assert.AreEqual(3, result.Count);
                Assert.AreEqual(beer.Name, result[0].Name);
                Assert.AreEqual(beer2.Name, result[1].Name);
                Assert.AreEqual(beer3.Name, result[2].Name);
            }
        }
コード例 #2
0
        public void UpdateCorrectBeer_When_ParamsAreValid()
        {
            var options  = Utils.GetOptions(nameof(UpdateCorrectBeer_When_ParamsAreValid));
            var beer     = TestsModelsSeeder.SeedBeer();
            var beerType = TestsModelsSeeder.SeedBeerType();
            var brewery  = TestsModelsSeeder.SeedBrewery();
            var country  = TestsModelsSeeder.SeedCountry();
            var beer2    = TestsModelsSeeder.SeedBeer2();

            using (var arrangeContext = new BeerOverflowContext(options))
            {
                arrangeContext.Countries.Add(country);
                arrangeContext.Breweries.Add(brewery);
                arrangeContext.BeerTypes.Add(beerType);
                arrangeContext.Beers.Add(beer);
                arrangeContext.Beers.Add(beer2);
                arrangeContext.SaveChanges();
            }

            using (var assertContext = new BeerOverflowContext(options))
            {
                var sut    = new BeerServices(assertContext);
                var act    = sut.UpdateBeer(1, "NewBeerName", beer2.Type.Name, brewery.Name, 6);
                var result = sut.GetBeer(1);
                Assert.AreEqual("NewBeerName", result.Name);
                Assert.AreEqual(beer2.Type.Name, result.BeerType);
                Assert.AreEqual(brewery.Name, result.Brewery);
                Assert.AreEqual(6, result.AlcoholByVolume);
            }
        }
コード例 #3
0
        public void ThrowArgumentException_When_UpdatedBeerExists()
        {
            var options  = Utils.GetOptions(nameof(ThrowArgumentException_When_UpdatedBeerExists));
            var beerType = TestsModelsSeeder.SeedBeerType();
            var brewery  = TestsModelsSeeder.SeedBrewery();
            var country  = TestsModelsSeeder.SeedCountry();
            var beer     = TestsModelsSeeder.SeedBeer();
            var beer2    = TestsModelsSeeder.SeedBeer2();

            using (var arrangeContext = new BeerOverflowContext(options))
            {
                arrangeContext.Countries.Add(country);
                arrangeContext.Breweries.Add(brewery);
                arrangeContext.BeerTypes.Add(beerType);
                arrangeContext.Beers.Add(beer);
                arrangeContext.Beers.Add(beer2);
                arrangeContext.SaveChanges();
            }

            using (var assertContext = new BeerOverflowContext(options))
            {
                var sut = new BeerServices(assertContext);
                Assert.ThrowsException <ArgumentException>(() => sut.UpdateBeer(1, beer2.Name, beer2.Type.Name, beer2.Brewery.Name, 6));
            }
        }
コード例 #4
0
        public void ReturnCorrectBeer_When_ParamsValid()
        {
            var options  = Utils.GetOptions(nameof(ReturnCorrectBeer_When_ParamsValid));
            var beertype = TestsModelsSeeder.SeedBeerType();
            var brewery  = TestsModelsSeeder.SeedBrewery();
            var beerDTO  = TestsModelsSeeder.SeedBeerDTO();

            using (var arrangeContext = new BeerOverflowContext(options))
            {
                arrangeContext.BeerTypes.Add(beertype);
                arrangeContext.Breweries.Add(brewery);
                arrangeContext.SaveChanges();
            }

            using (var assertContext = new BeerOverflowContext(options))
            {
                var sut    = new BeerServices(assertContext);
                var act    = sut.CreateBeer(beerDTO);
                var result = assertContext.Beers.FirstOrDefault(beer => beer.Name == beerDTO.Name);
                Assert.AreEqual(beerDTO.Id, result.Id);
                Assert.AreEqual(beerDTO.Name, result.Name);
                Assert.AreEqual(beerDTO.AlcoholByVolume, result.AlcoholByVolume);
                Assert.AreEqual(beerDTO.Brewery, result.Brewery.Name);
            }
        }
コード例 #5
0
        public void ThrowArgumentNullException_When_BeerMissing()
        {
            var options = Utils.GetOptions(nameof(ThrowArgumentNullException_When_BeerMissing));

            using (var assertContext = new BeerOverflowContext(options))
            {
                var sut = new BeerServices(assertContext);
                Assert.ThrowsException <ArgumentNullException>(() => sut.GetBeer(1));
            }
        }
コード例 #6
0
        public void ReturnFalse_When_BeerToDeleteMissing()
        {
            var options = Utils.GetOptions(nameof(ReturnFalse_When_BeerToDeleteMissing));

            using (var assertContext = new BeerOverflowContext(options))
            {
                var sut    = new BeerServices(assertContext);
                var result = sut.DeleteBeer(1);
                Assert.IsFalse(result);
            };
        }
コード例 #7
0
        public async Task GetAll_Should_Success_Return_FirstPage()
        {
            //Arrange
            var client       = new BreweryDbClient(Config.AppKey);
            var beerServices = new BeerServices(client);

            //Act
            var response = await beerServices.GetAll();

            //Assert
            Assert.IsTrue(response.Status == "success");
            Assert.IsTrue(response.CurrentPage == 1);
        }
コード例 #8
0
        public async Task GetAll_With_PageNumber_Should_Return_Right_Page()
        {
            //Arrange
            var client       = new BreweryDbClient(Config.AppKey);
            var beerServices = new BeerServices(client);
            int pageNumber   = 3;

            //Act
            var response = await beerServices.GetAll(pageNumber);

            //Assert
            Assert.IsTrue(response.Status == "success");
            Assert.IsTrue(response.CurrentPage == pageNumber);
        }
コード例 #9
0
        public void ThrowArgumentException_When_BeerAlreadyExists()
        {
            var options = Utils.GetOptions(nameof(ThrowArgumentException_When_BeerAlreadyExists));
            var beerDTO = TestsModelsSeeder.SeedBeerDTO();
            var beer    = TestsModelsSeeder.SeedBeer();

            using (var arrangeContext = new BeerOverflowContext(options))
            {
                arrangeContext.Beers.Add(beer);
                arrangeContext.SaveChanges();
            }
            using (var assertContext = new BeerOverflowContext(options))
            {
                var sut = new BeerServices(assertContext);
            }
        }
コード例 #10
0
        public async Task GetDetailsByID_Should_Return_Correct_Beer()
        {
            //Arrange
            var    client       = new BreweryDbClient(Config.AppKey);
            var    beerServices = new BeerServices(client);
            string beerId       = "eqcXWb";

            //Act
            var response = await beerServices.GetDetailsByID(beerId);

            var beer = response.Data;

            //Assert
            Assert.IsTrue(response.Status == "success");
            Assert.IsNotNull(beer);
            Assert.AreEqual(beer.Id, beerId);
        }
コード例 #11
0
        public async Task Search_Should_Return_Correct_Results()
        {
            //Arrange
            var    client       = new BreweryDbClient(Config.AppKey);
            var    beerServices = new BeerServices(client);
            string keyword      = "london";

            //Act
            var response = await beerServices.Search(keyword);

            var beers = response.Data;

            //Assert
            Assert.IsTrue(response.Status == "success");
            Assert.IsTrue(response.CurrentPage == 1);
            Assert.IsTrue(response.NumberOfPages >= 1);
            Assert.IsTrue(beers.Count >= 1);
        }
コード例 #12
0
        public void ChangeCorrect_IsDelete_ToTrue()
        {
            var options = Utils.GetOptions(nameof(ChangeCorrect_IsDelete_ToTrue));
            var beer    = TestsModelsSeeder.SeedBeer();

            using (var arrangeContext = new BeerOverflowContext(options))
            {
                arrangeContext.Beers.Add(beer);
                arrangeContext.SaveChanges();
            }

            using (var assertContext = new BeerOverflowContext(options))
            {
                var sut = new BeerServices(assertContext);
                var act = sut.DeleteBeer(1);
                Assert.IsTrue(assertContext.Beers.FirstOrDefault(beer => beer.Id == 1).IsDeleted);
            };
        }
コード例 #13
0
        public void ReturnFalse_When_BeerToDelete_AlreadyDeleted()
        {
            var options = Utils.GetOptions(nameof(ReturnFalse_When_BeerToDelete_AlreadyDeleted));

            var beer = TestsModelsSeeder.SeedBeer();

            using (var arrangeContext = new BeerOverflowContext(options))
            {
                arrangeContext.Beers.Add(beer);
                arrangeContext.SaveChanges();
            }

            using (var assertContext = new BeerOverflowContext(options))
            {
                var sut    = new BeerServices(assertContext);
                var act    = sut.DeleteBeer(1);
                var result = sut.DeleteBeer(1);
                Assert.IsFalse(result);
            };
        }
コード例 #14
0
 public BeersController(BeerServices beerServices)
 {
     _BeerServices = beerServices;
 }