public async Task AssignImgAndPrice_ShouldReturnModelWithPriceAndJmg() { //Arrange var db = this.SetDb(); await this.SeedCustomCakeImg(db); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); CustomCakeOrderViewModel model = new CustomCakeOrderViewModel { Sponge = "Vanilla", FirstLayerCream = "Whipped", SecondLayerCream = "Whipped", Filling = "NoFilling", SideDecoration = "White Cigarettes", TopDecoration = "Habana", NumberOfSlices = 6, Img = null, }; //Act var result = service.AssignImgAndPrice(model); var expectedPrice = 6 * 2.75m; var actualPrice = result.Price; //Assert Assert.Equal(expectedPrice, actualPrice); Assert.NotNull(result.Img); }
public async Task AssignImgAndPrice_WithInvalidSide_ShouldThrow() { //Arrange var db = this.SetDb(); await this.SeedCustomCakeImg(db); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); CustomCakeOrderViewModel model = new CustomCakeOrderViewModel { Sponge = "Vanilla", FirstLayerCream = "Whipped", SecondLayerCream = "Whipped", Filling = "NoFilling", SideDecoration = "White Dots", TopDecoration = "Habana", NumberOfSlices = 6, Img = null, }; //Act //Assert Assert.Throws <NullReferenceException>(() => service.AssignImgAndPrice(model)); }
public async Task SoftDelete_WithInValidCustomCakeId_ShouldMarkCakeAsDeleted() { //Assert var db = this.SetDb(); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var productRepo = new Repository <Product>(db); var productService = new CakeService(null, productRepo, this.Mapper); var service = new CustomCakeService(productRepo, repo, this.Mapper, logger); CustomCakeOrderViewModel model = new CustomCakeOrderViewModel { Sponge = "Vanilla", FirstLayerCream = "Whipped", SecondLayerCream = "Whipped", Filling = "No_Filling", SideDecoration = "White_Chocolate_Cigarettes", TopDecoration = "Habana", NumberOfSlices = 6, Img = null, }; var product = service.CreateCustomProduct(model); await productService.AddCakeToDb(product); //Act //Assert await Assert.ThrowsAsync <InvalidOperationException>(async() => await productService.SoftDelete(2)); }
public async Task UpdateCustomCakeImg_WithValidData_ShouldSaveUpdatedEntry() { //Arrange var db = this.SetDb(); await this.SeedCustomCakeImg(db); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); var customCakeImg = await repo.GetByIdAsync(2); db.Entry(customCakeImg).State = EntityState.Detached; var model = this.Mapper.Map <CustomCakeImg, CustomCakeImgViewModel>(customCakeImg); model.Name = "Golden leaf"; //Act await service.UpdateCustomCakeImg(model); var expectedTitle = "Golden leaf"; var actualTitle = repo.All().SingleOrDefault(t => t.Id == 2).Name; //Assert Assert.Equal(expectedTitle, actualTitle); }
public async Task AddCustomCakeImg_WithDuplicateCakeName_ShouldThrow() { //Arrange var db = this.SetDb(); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); CustomCakeImgViewModel model1 = new CustomCakeImgViewModel { Side = "White Cigarettes", Top = "Habana", Name = "Habana" + " " + "White Cigarettes", Img = "https://res.cloudinary.com/cakeit/image/upload/v1545083551/Top_Habana_WhiteCigarettes.png" }; CustomCakeImgViewModel model2 = new CustomCakeImgViewModel { Side = "White Cigarettes", Top = "Habana", Name = "Habana" + " " + "White Cigarettes", Img = "https://res.cloudinary.com/cakeit/image/upload/v1545083551/Top_Habana_WhiteCigarettes.png" }; await service.AddCustomCakeImg(model1); //Act //Assert await Assert.ThrowsAsync <InvalidOperationException>(async() => await service.AddCustomCakeImg(model2)); }
public async Task AddCustomCakeImg_ShouldAddDataToCustomCakeImgTable() { //Arrange var db = this.SetDb(); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); CustomCakeImgViewModel model = new CustomCakeImgViewModel { Side = "White Cigarettes", Top = "Habana", Name = "Habana" + " " + "White Cigarettes", Img = "https://res.cloudinary.com/cakeit/image/upload/v1545083551/Top_Habana_WhiteCigarettes.png" }; //Act await service.AddCustomCakeImg(model); var expected = "Habana White Cigarettes"; var actual = repo.All().First().Name; //Assert Assert.Equal(expected, actual); }
public async Task DeleteCustomCakeImg_WithValidiD_ShouldDelete() { //Arrange var db = this.SetDb(); await this.SeedCustomCakeImg(db); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); var cake = await service.GetCustomCakeImgById(1); //Act await service.DeleteCustomCakeImg(cake); var expectedRepoCount = 1; var actualRepoCount = repo.All().Count(); var expectedTutorialId = 2; var actualTutorialId = repo.All().First().Id; //Asser Assert.Equal(expectedRepoCount, actualRepoCount); Assert.Equal(expectedTutorialId, actualTutorialId); }
private async Task SeedCustomCakeImg(CakeItDbContext db) { var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); CustomCakeImgViewModel model1 = new CustomCakeImgViewModel { Side = "White Cigarettes", Top = "Habana", Name = "Habana" + " " + "White Cigarettes", Img = "https://someurl.bg" }; await service.AddCustomCakeImg(model1); CustomCakeImgViewModel model2 = new CustomCakeImgViewModel { Side = "Dark Cigarettes", Top = "Meksiko", Name = "Meksiko" + " " + "Dark Cigarettes", Img = "https://otherurl.bg" }; await service.AddCustomCakeImg(model2); await repo.SaveChangesAsync(); }
public void CreateCustomProduct_WithInValidIngredients_ShouldThrow() { //Arrange var db = this.SetDb(); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); CustomCakeOrderViewModel model = new CustomCakeOrderViewModel { Sponge = "Vanilla", FirstLayerCream = "Whipped", SecondLayerCream = "Whipped", Filling = "NoFilling", SideDecoration = "White_Chocolate_Cigarettes", TopDecoration = "Habana", NumberOfSlices = 6, Img = null, }; //Act //Assert Assert.Throws <AutoMapperMappingException >(() => service.CreateCustomProduct(model)); }
public void CreateCustomProduct_ShouldReturnProduct() { //Arrange var db = this.SetDb(); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); CustomCakeOrderViewModel model = new CustomCakeOrderViewModel { Sponge = "Vanilla", FirstLayerCream = "Whipped", SecondLayerCream = "Whipped", Filling = "No_Filling", SideDecoration = "White_Chocolate_Cigarettes", TopDecoration = "Habana", NumberOfSlices = 6, Img = null, }; //Act var product = service.CreateCustomProduct(model); //Assert Assert.NotNull(product); Assert.IsType <Product>(product); }
public async Task GetCustomCakeImglById_WithInValidId_ShouldThrow() { //Arrange var db = this.SetDb(); await this.SeedCustomCakeImg(db); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); //Act //Assert await Assert.ThrowsAsync <NullReferenceException>(async() => await service.GetCustomCakeImgById(3)); }
public void CreateCustomProduct_WithNullIngredients_ShouldThrow() { //Arrange var db = this.SetDb(); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); CustomCakeOrderViewModel model = null; //Act //Assert Assert.Throws <AutoMapperMappingException >(() => service.CreateCustomProduct(model)); }
public async Task GetAllCustomCakesImg_ShouldReturnCollection() { //Arrange var db = this.SetDb(); await this.SeedCustomCakeImg(db); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); //Act var result = service.GetAllCustomCakesImg(); var expectedCount = 2; var actualCount = result.Count(); //Assert Assert.Equal(expectedCount, actualCount); }
public async Task RemoveFromCart_WithItemCategoryTwo_ShouldReturnEmptyCart() { //Arrange var db = this.SetDb(); var repo = new Repository <CustomCakeImg>(db); var productRepo = new Repository <Product>(db); var productService = new CakeService(null, productRepo, this.Mapper); var customCakeService = new CustomCakeService(productRepo, repo, this.Mapper, null); var wrapper = new TestCartSessionWrapper(); var cartManager = new CartManager(wrapper); var cartService = new CartService(productRepo, cartManager); CustomCakeOrderViewModel model = new CustomCakeOrderViewModel { Sponge = "Vanilla", FirstLayerCream = "Whipped", SecondLayerCream = "Whipped", Filling = "No_Filling", SideDecoration = "White_Chocolate_Cigarettes", TopDecoration = "Habana", NumberOfSlices = 6, Img = null, }; var product = customCakeService.CreateCustomProduct(model); await productService.AddCakeToDb(product); await cartService.AddToCart(1); //Act await cartService.RemoveFromCart(1); //Assert Assert.Empty(cartManager.GetCartItem()); }
public async Task GetCustomCakeImglById_WithValidId_ShouldReturnModel() { //Arrange var db = this.SetDb(); await this.SeedCustomCakeImg(db); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); //Act var model = await service.GetCustomCakeImgById(2); var expectedId = 2; var actualId = model.Id; //Assert Assert.NotNull(model); Assert.Equal(expectedId, actualId); }
public async Task SoftDelete_WithValidCustomCakeId_ShouldMarkCakeAsDeleted() { //Assert var db = this.SetDb(); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var productRepo = new Repository <Product>(db); var productService = new CakeService(null, productRepo, this.Mapper); var service = new CustomCakeService(productRepo, repo, this.Mapper, logger); CustomCakeOrderViewModel model = new CustomCakeOrderViewModel { Sponge = "Vanilla", FirstLayerCream = "Whipped", SecondLayerCream = "Whipped", Filling = "No_Filling", SideDecoration = "White_Chocolate_Cigarettes", TopDecoration = "Habana", NumberOfSlices = 6, Img = null, }; var product = service.CreateCustomProduct(model); await productService.AddCakeToDb(product); //Act await productService.SoftDelete(1); var expectedIsDeleted = true; var actualIsDeleted = (await productRepo.GetByIdAsync(1)).IsDeleted; //Assert Assert.Equal(expectedIsDeleted, actualIsDeleted); }
public async Task AssignImgAndPrice_WhithInvalidImgUrn_ShouldThrow() { //Arrange var db = this.SetDb(); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); CustomCakeImgViewModel imgModel = new CustomCakeImgViewModel { Side = "White Cigarettes", Top = "Habana", Name = "Habana" + " " + "White Cigarettes", Img = "null" }; await service.AddCustomCakeImg(imgModel); CustomCakeOrderViewModel model = new CustomCakeOrderViewModel { Sponge = "Vanilla", FirstLayerCream = "Whipped", SecondLayerCream = "Whipped", Filling = "NoFilling", SideDecoration = "White Cigarettes", TopDecoration = "Habana", NumberOfSlices = 6, Img = null, }; //Act //Assert Assert.Throws <InvalidOperationException>(() => service.AssignImgAndPrice(model)); }
public async Task UpdateCustomCakeImg_WithDuplicateImgUrl_ShouldSaveUpdatedTurorialThrow() { //Arrange var db = this.SetDb(); await this.SeedCustomCakeImg(db); var repo = new Repository <CustomCakeImg>(db); var mock = new Mock <ILogger <CustomCakeService> >(); ILogger <CustomCakeService> logger = mock.Object; var service = new CustomCakeService(null, repo, this.Mapper, logger); var customCakeImg = await repo.GetByIdAsync(2); db.Entry(customCakeImg).State = Microsoft.EntityFrameworkCore.EntityState.Detached; var model = this.Mapper.Map <CustomCakeImg, CustomCakeImgViewModel>(customCakeImg); model.Img = "https://someurl.bg"; //Act //Assert await Assert.ThrowsAsync <InvalidOperationException>(async() => await service.UpdateCustomCakeImg(model)); }