public async Task <IActionResult> Create(CreateSlideInputViewModel model) { if (!this.ModelState.IsValid) { return(this.View(model)); } await this.homePageSlidesService.CreateAsync(model, model.Image); this.TempData["Alert"] = "Successfully created slide."; return(this.RedirectToAction(nameof(this.All))); }
public async Task CreateAsyncGenericShouldWorkCorrectlyUsingMoq() { AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly); var slidesRepository = new Mock <IRepository <HomePageSlide> >(); var imagesService = new Mock <IImagesService>(); var slides = new List <HomePageSlide> { new HomePageSlide { Id = 1 }, new HomePageSlide { Id = 2 }, }; slidesRepository.Setup(r => r.AllAsNoTracking()).Returns(slides.AsQueryable()); slidesRepository.Setup(r => r.AddAsync(It.IsAny <HomePageSlide>())).Callback((HomePageSlide item) => slides.Add(item)); slidesRepository.Setup(r => r.SaveChangesAsync()).Verifiable(); imagesService.Setup(r => r.UploadAzureBlobImageAsync(It.IsAny <IFormFile>(), It.IsAny <string>())) .Returns(async(IFormFile image, string path) => await Task.FromResult(path + "/" + image.FileName)); var service = new HomePageSlidesService(slidesRepository.Object, imagesService.Object); var model = new CreateSlideInputViewModel { Description = "TestDescription", LinkUrl = "TestLinkUrl" }; await service.CreateAsync(model, new FormFile(null, 0, 0, "test", "test.png")); Assert.Equal("TestDescription", slides.LastOrDefault().Description); Assert.Equal("TestLinkUrl", slides.LastOrDefault().LinkUrl); Assert.Equal("images/test.png", slides.LastOrDefault().ImageUrl); slidesRepository.Verify(x => x.AllAsNoTracking(), Times.Once); slidesRepository.Verify(x => x.AddAsync(It.IsAny <HomePageSlide>()), Times.Once); slidesRepository.Verify(x => x.SaveChangesAsync()); imagesService.Verify(x => x.UploadAzureBlobImageAsync(It.IsAny <IFormFile>(), It.IsAny <string>()), Times.Once); }