public async Task MoveDownAsyncShouldWorkCorrectlyUsingMoq() { var slidesRepository = new Mock <IRepository <HomePageSlide> >(); var slides = new List <HomePageSlide> { new HomePageSlide { Id = 1, Position = 1 }, new HomePageSlide { Id = 2, Position = 2 }, }; slidesRepository.Setup(r => r.All()).Returns(slides.AsQueryable()); slidesRepository.Setup(r => r.Update(It.IsAny <HomePageSlide>())).Callback((HomePageSlide item) => { var foundSlide = slides.FirstOrDefault(x => x.Id == item.Id); foundSlide.Position = item.Position; }); slidesRepository.Setup(r => r.SaveChangesAsync()).Verifiable(); var service = new HomePageSlidesService(slidesRepository.Object, null); Assert.True(await service.MoveDownAsync(1)); Assert.Equal(2, slides.FirstOrDefault().Position); Assert.Equal(1, slides.LastOrDefault().Position); slidesRepository.Verify(x => x.All(), Times.Exactly(2)); slidesRepository.Verify(x => x.Update(It.IsAny <HomePageSlide>()), Times.Exactly(2)); slidesRepository.Verify(x => x.SaveChangesAsync()); }
public void GetByIdGenericShouldMapCorrectlyUsingMoq() { AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly); var repository = new Mock <IRepository <HomePageSlide> >(); var slides = new List <HomePageSlide> { new HomePageSlide { Id = 1, Position = 2 }, new HomePageSlide { Id = 2, Position = 3 }, new HomePageSlide { Id = 3, Position = 1, ImageUrl = "TestImageUrl", LinkUrl = "TestLinkUrl" }, }; repository.Setup(r => r.AllAsNoTracking()).Returns(slides.AsQueryable()); var service = new HomePageSlidesService(repository.Object, null); Assert.Equal(3, service.GetById <SlideViewModel>(3).Id); Assert.Equal(1, service.GetById <SlideViewModel>(3).Position); Assert.Equal("TestImageUrl", service.GetById <SlideViewModel>(3).ImageUrl); Assert.Equal("TestLinkUrl", service.GetById <SlideViewModel>(3).LinkUrl); repository.Verify(x => x.AllAsNoTracking(), Times.Exactly(4)); }
public async Task EditAsyncGenericShouldReturnFalseWithInvalidSlideIdUsingMoq() { AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly); var slidesRepository = new Mock <IRepository <HomePageSlide> >(); var slides = new List <HomePageSlide> { new HomePageSlide { Id = 1 }, new HomePageSlide { Id = 2 }, }; slidesRepository.Setup(r => r.All()).Returns(slides.AsQueryable()); var service = new HomePageSlidesService(slidesRepository.Object, null); var model = new EditSlideViewModel { Id = 3 }; Assert.False(await service.EditAsync(model, null)); slidesRepository.Verify(x => x.All(), Times.Once); }
public async Task DeleteAsyncShouldWorkCorrectlyIdUsingMoq() { var slidesRepository = new Mock <IRepository <HomePageSlide> >(); var slides = new List <HomePageSlide> { new HomePageSlide { Id = 1 }, new HomePageSlide { Id = 2 }, }; slidesRepository.Setup(r => r.All()).Returns(slides.AsQueryable()); slidesRepository.Setup(r => r.Delete(It.IsAny <HomePageSlide>())).Callback((HomePageSlide item) => slides.Remove(item)); slidesRepository.Setup(r => r.SaveChangesAsync()).Verifiable(); var service = new HomePageSlidesService(slidesRepository.Object, null); Assert.True(await service.DeleteAsync(2)); Assert.Single(slides); slidesRepository.Verify(x => x.All(), Times.Once); slidesRepository.Verify(x => x.Delete(It.IsAny <HomePageSlide>()), Times.Once); slidesRepository.Verify(x => x.SaveChangesAsync()); }
public async Task EditAsyncGenericShouldWorkCorrectlyWithImageUsingMoq() { 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, Description = "TestDescription", LinkUrl = "TestLinkUrl" }, }; slidesRepository.Setup(r => r.All()).Returns(slides.AsQueryable()); slidesRepository.Setup(r => r.Update(It.IsAny <HomePageSlide>())).Callback((HomePageSlide item) => { var foundSlide = slides.FirstOrDefault(x => x.Id == item.Id); foundSlide.Description = item.Description; foundSlide.LinkUrl = item.LinkUrl; }); 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 EditSlideViewModel { Id = 2, Description = "TestDescriptionEdited", LinkUrl = "TestLinkUrlEdited" }; Assert.True(await service.EditAsync(model, new FormFile(null, 0, 0, "test", "test.png"))); Assert.Equal("TestDescriptionEdited", slides.FirstOrDefault(x => x.Id == 2).Description); Assert.Equal("TestLinkUrlEdited", slides.FirstOrDefault(x => x.Id == 2).LinkUrl); Assert.Equal("images/test.png", slides.FirstOrDefault(x => x.Id == 2).ImageUrl); slidesRepository.Verify(x => x.All(), Times.Once); slidesRepository.Verify(x => x.Update(It.IsAny <HomePageSlide>()), Times.Once); slidesRepository.Verify(x => x.SaveChangesAsync()); imagesService.Verify(x => x.UploadAzureBlobImageAsync(It.IsAny <IFormFile>(), It.IsAny <string>()), Times.Once); }
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); }
public async Task MoveDownAsyncShouldReturnFalseWhenThereIsNoBottomSlideUsingMoq() { var slidesRepository = new Mock <IRepository <HomePageSlide> >(); var slides = new List <HomePageSlide> { new HomePageSlide { Id = 1, Position = 1 }, new HomePageSlide { Id = 2, Position = 2 }, }; slidesRepository.Setup(r => r.All()).Returns(slides.AsQueryable()); var service = new HomePageSlidesService(slidesRepository.Object, null); Assert.False(await service.MoveDownAsync(2)); slidesRepository.Verify(x => x.All(), Times.Exactly(2)); }
public async Task MoveUpAsyncShouldReturnFalseWhenSlidePositionIsEqualToOneUsingMoq() { var slidesRepository = new Mock <IRepository <HomePageSlide> >(); var slides = new List <HomePageSlide> { new HomePageSlide { Id = 1 }, new HomePageSlide { Id = 2, Position = 1 }, }; slidesRepository.Setup(r => r.All()).Returns(slides.AsQueryable()); var service = new HomePageSlidesService(slidesRepository.Object, null); Assert.False(await service.MoveUpAsync(2)); slidesRepository.Verify(x => x.All(), Times.Once); }
public async Task DeleteAsyncShouldReturnFalseWithInvalidSlideIdUsingMoq() { var slidesRepository = new Mock <IRepository <HomePageSlide> >(); var slides = new List <HomePageSlide> { new HomePageSlide { Id = 1 }, new HomePageSlide { Id = 2 }, }; slidesRepository.Setup(r => r.All()).Returns(slides.AsQueryable()); var service = new HomePageSlidesService(slidesRepository.Object, null); Assert.False(await service.DeleteAsync(3)); slidesRepository.Verify(x => x.All(), Times.Once); }
public async Task EditAsyncGenericShouldWorkCorrectlyWithNoImageUsingMoq() { AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly); var slidesRepository = new Mock <IRepository <HomePageSlide> >(); var slides = new List <HomePageSlide> { new HomePageSlide { Id = 1 }, new HomePageSlide { Id = 2, Description = "TestDescription", LinkUrl = "TestLinkUrl" }, }; slidesRepository.Setup(r => r.All()).Returns(slides.AsQueryable()); slidesRepository.Setup(r => r.Update(It.IsAny <HomePageSlide>())).Callback((HomePageSlide item) => { var foundSlide = slides.FirstOrDefault(x => x.Id == item.Id); foundSlide.Description = item.Description; foundSlide.LinkUrl = item.LinkUrl; }); slidesRepository.Setup(r => r.SaveChangesAsync()).Verifiable(); var service = new HomePageSlidesService(slidesRepository.Object, null); var model = new EditSlideViewModel { Id = 2, Description = "TestDescriptionEdited", LinkUrl = "TestLinkUrlEdited" }; Assert.True(await service.EditAsync(model, null)); Assert.Equal("TestDescriptionEdited", slides.FirstOrDefault(x => x.Id == 2).Description); Assert.Equal("TestLinkUrlEdited", slides.FirstOrDefault(x => x.Id == 2).LinkUrl); slidesRepository.Verify(x => x.All(), Times.Once); slidesRepository.Verify(x => x.Update(It.IsAny <HomePageSlide>()), Times.Once); slidesRepository.Verify(x => x.SaveChangesAsync()); }
public void GetAllGenericShouldReturnCorrectCountUsingMoq() { AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly); var repository = new Mock <IRepository <HomePageSlide> >(); var slides = new List <HomePageSlide> { new HomePageSlide { Id = 1 }, new HomePageSlide { Id = 2 }, }; repository.Setup(r => r.AllAsNoTracking()).Returns(slides.AsQueryable()); var service = new HomePageSlidesService(repository.Object, null); Assert.Equal(2, service.GetAll <SlideViewModel>().Count()); repository.Verify(x => x.AllAsNoTracking(), Times.Once); }