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 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 <IActionResult> Edit(CustomCakeImgViewModel model) { if (!ModelState.IsValid) { var errors = this.ModelState.Values.SelectMany(p => p.Errors).Select(e => e.ErrorMessage).ToList(); var errorModel = this.errorService.GetErrorModel(errors); return(View("Error", errorModel)); } try { await this.customCakeService.UpdateCustomCakeImg(model); } catch (Exception e) { ViewData["Errors"] = e.Message; return(this.View("Error")); } return(RedirectToAction("AllCustomCakeImg")); }
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 async Task <IActionResult> AddCustomCakeImg(CustomCakeImgViewModel model) { if (!ModelState.IsValid) { this.logger.LogDebug("Model is not valid."); var errors = this.ModelState.Values.SelectMany(p => p.Errors).Select(e => e.ErrorMessage).ToList(); var errorModel = this.errorService.GetErrorModel(errors); return(View("Error", errorModel)); } try { await this.customCakeService.AddCustomCakeImg(model); } catch (Exception e) { ViewData["Errors"] = e.InnerException.Message; return(this.View("Error")); } return(RedirectToAction(nameof(AllCustomCakeImg))); }
public async Task UpdateCustomCakeImg(CustomCakeImgViewModel model) { if (this.customCakeImgRepo.All().Any(t => t.Name == model.Name && t.Id != model.Id)) { throw new InvalidOperationException("Custom Cake with such name already exists."); } if (this.customCakeImgRepo.All().Any(p => p.Img == model.Img && p.Id != model.Id)) { throw new InvalidOperationException("Custom Cake with such image url already exists."); } var customCakeImg = this.mapper.Map <CustomCakeImgViewModel, CustomCakeImg>(model); this.customCakeImgRepo.Update(customCakeImg); try { await this.customCakeImgRepo.SaveChangesAsync(); } catch (Exception e) { this.logger.LogDebug(e.Message); throw new InvalidOperationException("Sorry, an error occurred and your request couldn't be processed."); } }
public async Task <IActionResult> Delete(CustomCakeImgViewModel model) { try { await this.customCakeService.DeleteCustomCakeImg(model); } catch (Exception e) { ViewData["Errors"] = e.Message; return(this.View("Error")); } return(RedirectToAction("AllCustomCakeImg")); }
public async Task DeleteCustomCakeImg(CustomCakeImgViewModel model) { var customCakeImg = await this.customCakeImgRepo.GetByIdAsync(model.Id); this.customCakeImgRepo.Delete(customCakeImg); try { await this.customCakeImgRepo.SaveChangesAsync(); } catch (Exception e) { this.logger.LogDebug(e.Message); throw new InvalidOperationException("Sorry, an error occurred while trying to delete custom cake."); } }
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)); }