コード例 #1
0
        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)));
        }
コード例 #2
0
        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);
        }