public void Given_ProductIdAndPhotoId_When_DeletePhoto_ThenReturn_NoContent() { //Arrange int productId = 1; int photoId = 2; var photoFromProductThatIsSameAsPassedOne = new Photo() { Id = 2 }; _mockedUnitOfWork.Setup(s => s.Product.GetWithPhotosOnly(productId)) .ReturnsAsync(new Product() { Photos = new List <Photo>() { photoFromProductThatIsSameAsPassedOne } }); _mockedUnitOfWork.Setup(s => s.Photo.GetAsync(photoId)).ReturnsAsync(new Photo() { Id = photoId }); _mockedUnitOfWork.Setup(s => s.Photo.Delete(It.IsAny <Photo>())); _mockedUnitOfWork.Setup(s => s.SaveAsync()).ReturnsAsync(true); //Act var result = _cut.DeletePhoto(productId, photoId).Result; //Assert result.Should().BeOfType <NoContentResult>(); _mockedUnitOfWork.Verify(v => v.Product.GetWithPhotosOnly(productId), Times.Once); _mockedUnitOfWork.Verify(v => v.Photo.GetAsync(photoId), Times.Once); _mockedUnitOfWork.Verify(v => v.Photo.Delete(It.IsAny <Photo>()), Times.Once); _mockedUnitOfWork.Verify(v => v.SaveAsync(), Times.Once); }
public static bool DeletePhoto(int photoId) { var photo = PhotosDAL.GetPhoto(photoId); if (photo == null) { return(false); } return(PhotosController.DeletePhoto(photo)); }
public async Task DeletePhoto_MainPhotoPassed_ReturnsBadRequestResult() { var photo = new Photo() { Id = 1, IsMain = true, }; var photoToDelete = new Photo() { Id = 2, IsMain = false, }; var user = new User() { Id = 1, Photos = new List <Photo> { photo, photoToDelete } }; var userClaims = new ClaimsPrincipal(new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.NameIdentifier, "1"), })); var mapperMock = new Mock <IMapper>(); var cloudinaryConfigMock = Options.Create <CloudinarySettings>(new CloudinarySettings { ApiKey = "test", ApiSecret = "test", CloudName = "test" }); var repositoryMock = new Mock <IRepositoryWrapper>(); repositoryMock.Setup(r => r.UserRepository.GetUserAsync(It.IsAny <int>())).ReturnsAsync(() => user); repositoryMock.Setup(r => r.PhotoRepository.GetPhotoAsync(It.IsAny <int>())).ReturnsAsync(() => photo); repositoryMock.Setup(r => r.PhotoRepository.Delete(It.IsAny <Photo>())); repositoryMock.Setup(r => r.SaveAllAsync()).ReturnsAsync(true); var controllerMock = new PhotosController(repositoryMock.Object, mapperMock.Object, cloudinaryConfigMock); controllerMock.ControllerContext = new ControllerContext() { HttpContext = new DefaultHttpContext() { User = userClaims } }; var result = await controllerMock.DeletePhoto(user.Id, 1); Assert.IsType <BadRequestObjectResult>(result); }
public void IntegrationTest_Given_ProductIdAndPhotoId_When_DeletePhoto_Then_Return_NoContentStatus(int productId, int photoId) { //Arrange var photoBeforeRunningAct = _unitOfWork.Photo.GetAsync(photoId).Result; //Act var result = _sut.DeletePhoto(productId, photoId).Result; var photoAfterRunningAct = _unitOfWork.Photo.GetAsync(photoId).Result; //Assert result.Should().BeOfType(typeof(NoContentResult)); photoBeforeRunningAct.Should().NotBeNull(); photoAfterRunningAct.Should().BeNull(); }
public async Task DeletePhoto() { // Arrange var seedIds = new List <int> { new Random().Next(1, 50), new Random().Next(51, 100) }; string expectedUserName = string.Format("test_{0}@gmail.com", Guid.NewGuid()); ControllerContext controllerContext = Utilities.SetupCurrentUserForController(expectedUserName); var seedPhotos = SeedPhotos(seedIds, expectedUserName); var mockPhotoRepository = new Mock <IPhotoRepository>(); var mockCommentRepository = new Mock <ICommentRepository>(); var mockCategoryRepository = new Mock <ICategoryRepository>(); var mockUserRepository = new Mock <IUserRepository>(); var mockAlbumRepository = new Mock <IAlbumRepository>(); var mockUnitOfWork = new Mock <IUnitOfWork>(); var mockPhotoUploadService = new Mock <IPhotoUploadService>(); var mockHost = new Mock <IWebHostEnvironment>(); mockHost.SetupGet(m => m.WebRootPath).Returns(string.Empty); var mockObjectDetectionService = new Mock <IObjectDetectionService>(); PhotosController controller = new PhotosController(this._mapper, mockPhotoRepository.Object, mockCategoryRepository.Object, mockUserRepository.Object, mockCommentRepository.Object, mockAlbumRepository.Object, mockUnitOfWork.Object, mockPhotoUploadService.Object, mockHost.Object, mockObjectDetectionService.Object); controller.ControllerContext = controllerContext; int count = 0; foreach (var seedPhoto in seedPhotos) { var id = seedPhoto.Id; mockPhotoRepository.Setup(m => m.GetAsync(id, true)).ReturnsAsync(seedPhoto); mockPhotoUploadService.Setup(m => m.DeletePhoto(seedPhoto.FilePath, controller.UploadFolderPath, controller.OutputFolderPath)); // Act var result = await controller.DeletePhoto(id); // Assert Assert.IsType <OkResult>(result); mockPhotoRepository.Verify(m => m.Delete(seedPhoto), Times.Once); mockCommentRepository.Verify(m => m.DeleteAll(It.IsAny <List <Comment> >()), Times.Exactly(++count)); mockPhotoUploadService.Verify(m => m.DeletePhoto(seedPhoto.FilePath, controller.UploadFolderPath, controller.OutputFolderPath), Times.Once); } }