Exemple #1
0
        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);
        }
Exemple #2
0
        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();
        }
Exemple #5
0
        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);
            }
        }