public void ThrowArgumentNullException_WhenPassedImageIsNull()
        {
            // Arrange
            var contextMock        = new Mock <ITravelGuideContext>();
            var imageFactoryMock   = new Mock <IGalleryImageFactory>();
            var commentFactoryMock = new Mock <IGalleryCommentFactory>();
            var likeFactoryMock    = new Mock <IGalleryLikeFactory>();

            var service = new GalleryImageService(contextMock.Object, imageFactoryMock.Object, likeFactoryMock.Object, commentFactoryMock.Object);

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => service.DeleteImage(null));
        }
        public void CallSaveChanges_WhenParamsAreValid()
        {
            // Arrange
            var contextMock        = new Mock <ITravelGuideContext>();
            var imageFactoryMock   = new Mock <IGalleryImageFactory>();
            var commentFactoryMock = new Mock <IGalleryCommentFactory>();
            var likeFactoryMock    = new Mock <IGalleryLikeFactory>();
            var image = new GalleryImage();

            contextMock.Setup(x => x.GalleryImages.Find(It.IsAny <Guid>())).Returns(image);
            var service = new GalleryImageService(contextMock.Object, imageFactoryMock.Object, likeFactoryMock.Object, commentFactoryMock.Object);

            // Act
            service.DeleteImage(image);

            // Assert
            contextMock.Verify(x => x.SaveChanges(), Times.Once);
        }
        public void CorrectlyChangeImageProperty_WhenParamsAreValid()
        {
            // Arrange
            var contextMock        = new Mock <ITravelGuideContext>();
            var imageFactoryMock   = new Mock <IGalleryImageFactory>();
            var commentFactoryMock = new Mock <IGalleryCommentFactory>();
            var likeFactoryMock    = new Mock <IGalleryLikeFactory>();
            var image = new GalleryImage();

            image.IsDeleted = false;
            var initailValue = image.IsDeleted;

            contextMock.Setup(x => x.GalleryImages.Find(It.IsAny <Guid>())).Returns(image);
            var service = new GalleryImageService(contextMock.Object, imageFactoryMock.Object, likeFactoryMock.Object, commentFactoryMock.Object);

            // Act
            service.DeleteImage(image);

            // Assert
            Assert.IsFalse(initailValue);
            Assert.IsTrue(image.IsDeleted);
        }