コード例 #1
0
        public void AddCommentToRespectiveImage_WhenParamsAreValid()
        {
            // Arrange
            var contextMock        = new Mock <ITravelGuideContext>();
            var imageFactoryMock   = new Mock <IGalleryImageFactory>();
            var commentFactoryMock = new Mock <IGalleryCommentFactory>();
            var likeFactoryMock    = new Mock <IGalleryLikeFactory>();
            var comment            = new GalleryComment();
            var image = new GalleryImage();
            var user  = new User();

            contextMock.Setup(x => x.Users.Find(It.IsAny <string>())).Returns(user);
            commentFactoryMock.Setup(x => x.CreateGalleryComment(It.IsAny <Guid>(), It.IsAny <User>(), It.IsAny <string>(), It.IsAny <Guid>()))
            .Returns(comment);
            contextMock.Setup(x => x.GalleryImages.Find(It.IsAny <Guid>())).Returns(image);

            var id      = "some name";
            var content = "some content";
            var guid    = Guid.NewGuid();

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

            // Act
            service.AddComment(id, content, guid);

            // Assert
            Assert.AreSame(comment, image.Comments.First());
        }
コード例 #2
0
        public void CorrectlyAddLikeToImage_WhenPassedParamsAreValid()
        {
            // 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();
            var like  = new GalleryLike();
            var user  = new User();

            like.UserId = Guid.NewGuid();

            user.Id = Guid.NewGuid().ToString();
            contextMock.Setup(x => x.Users.Find(It.IsAny <string>())).Returns(user);
            likeFactoryMock.Setup(x => x.CreateGalleryLike(It.IsAny <Guid>(), It.IsAny <Guid>())).Returns(like);
            contextMock.Setup(x => x.GalleryImages.Find(It.IsAny <Guid>())).Returns(image);

            var id      = "some id";
            var imageId = Guid.NewGuid();

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

            // Act
            service.ToggleLike(id, imageId);

            // Assert
            Assert.AreSame(like, image.Likes.First());
        }
コード例 #3
0
        public void MakeACallToSaveChanges_WhenParamsAreValid()
        {
            // Arrange
            var contextMock        = new Mock <ITravelGuideContext>();
            var imageFactoryMock   = new Mock <IGalleryImageFactory>();
            var commentFactoryMock = new Mock <IGalleryCommentFactory>();
            var likeFactoryMock    = new Mock <IGalleryLikeFactory>();
            var comment            = new GalleryComment();
            var image = new GalleryImage();
            var user  = new User();

            contextMock.Setup(x => x.Users.Find(It.IsAny <string>())).Returns(user);
            commentFactoryMock.Setup(x => x.CreateGalleryComment(It.IsAny <Guid>(), It.IsAny <User>(), It.IsAny <string>(), It.IsAny <Guid>()))
            .Returns(comment);
            contextMock.Setup(x => x.GalleryImages.Find(It.IsAny <Guid>())).Returns(image);

            var id      = "some name";
            var content = "some content";
            var guid    = Guid.NewGuid();

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

            // Act
            service.AddComment(id, content, guid);

            // Assert
            contextMock.Verify(x => x.SaveChanges(), Times.Once);
        }
コード例 #4
0
        public void CorrectlyRemoveLikeFromImage_WhenPassedParamsAreValid()
        {
            // 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();
            var like  = new GalleryLike();
            var user  = new User();

            image.Likes.Add(like);
            var initialCount = image.Likes.Count();

            var id      = "id";
            var imageId = Guid.NewGuid();

            like.UserId = Guid.Parse(user.Id);

            contextMock.Setup(x => x.Users.Find(It.IsAny <string>())).Returns(user);
            likeFactoryMock.Setup(x => x.CreateGalleryLike(It.IsAny <Guid>(), It.IsAny <Guid>())).Returns(like);
            contextMock.Setup(x => x.GalleryImages.Find(It.IsAny <Guid>())).Returns(image);
            contextMock.Setup(x => x.GalleryLikes.Remove(like));

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

            // Act
            service.ToggleLike(id, imageId);

            // Assert
            contextMock.Verify(x => x.GalleryLikes.Remove(like), Times.Once);
        }
コード例 #5
0
 public GalleryImageController(FileHelper fileHelper, IMapper mapper, GalleryImageService galleryImageService, GalleryImageRepository galleryImageRepo, PaginatedMetaService paginatedMetaService, GalleryRepository galleryRepository)
 {
     _galleryImageService  = galleryImageService;
     _galleryImageRepo     = galleryImageRepo;
     _paginatedMetaService = paginatedMetaService;
     _mapper            = mapper;
     _fileHelper        = fileHelper;
     _galleryRepository = galleryRepository;
 }
コード例 #6
0
        public void ThrowArgumentNullException_WhenPassedIdIsNull(string id)
        {
            // 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.DeleteComment(id));
        }
コード例 #7
0
        public void ReturnImageServiceInstance_WhenPassedParamsAreValid()
        {
            // Arrange
            var contextMock        = new Mock <ITravelGuideContext>();
            var imageFactoryMock   = new Mock <IGalleryImageFactory>();
            var commentFactoryMock = new Mock <IGalleryCommentFactory>();
            var likeFactoryMock    = new Mock <IGalleryLikeFactory>();

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

            // Assert
            Assert.IsInstanceOf <GalleryImageService>(service);
        }
コード例 #8
0
        public void ThrowInvalidOperationException_WhenPassedIdIsNull()
        {
            // Arrange
            var contextMock        = new Mock <ITravelGuideContext>();
            var imageFactoryMock   = new Mock <IGalleryImageFactory>();
            var commentFactoryMock = new Mock <IGalleryCommentFactory>();
            var likeFactoryMock    = new Mock <IGalleryLikeFactory>();
            var id = Guid.NewGuid().ToString();

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

            // Act & Assert
            Assert.Throws <InvalidOperationException>(() => service.DeleteComment(id));
        }
コード例 #9
0
        public void ThrowArgumentNullException_WhenPassedContentIsNull(string content)
        {
            // Arrange
            var contextMock        = new Mock <ITravelGuideContext>();
            var imageFactoryMock   = new Mock <IGalleryImageFactory>();
            var commentFactoryMock = new Mock <IGalleryCommentFactory>();
            var likeFactoryMock    = new Mock <IGalleryLikeFactory>();

            var id   = "some name";
            var guid = Guid.NewGuid();

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

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => service.AddComment(id, content, guid));
        }
コード例 #10
0
        public void ThrowArgumentNullException_WhenPassedUrlIsNull(string url)
        {
            // Arrange
            var contextMock        = new Mock <ITravelGuideContext>();
            var imageFactoryMock   = new Mock <IGalleryImageFactory>();
            var commentFactoryMock = new Mock <IGalleryCommentFactory>();
            var likeFactoryMock    = new Mock <IGalleryLikeFactory>();

            var title = "some title";
            var id    = "some url";

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

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => service.AddNewImage(id, title, url));
        }
コード例 #11
0
        public void ThrowInvalidArgumentException_WhenNoSuchUserIsFound()
        {
            // Arrange
            var contextMock        = new Mock <ITravelGuideContext>();
            var imageFactoryMock   = new Mock <IGalleryImageFactory>();
            var commentFactoryMock = new Mock <IGalleryCommentFactory>();
            var likeFactoryMock    = new Mock <IGalleryLikeFactory>();

            var title = "some title";
            var id    = "some url";
            var url   = "url";

            contextMock.Setup(x => x.Users.Find(It.IsAny <string>())).Returns((User)null);
            var service = new GalleryImageService(contextMock.Object, imageFactoryMock.Object, likeFactoryMock.Object, commentFactoryMock.Object);

            // Act & Assert
            Assert.Throws <InvalidOperationException>(() => service.AddNewImage(id, title, url));
        }
コード例 #12
0
        public void CorrectlyReturnTargetInstance_WhenParamsAreCorrect()
        {
            // 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
            var dbImage = service.GetGalleryImageById(Guid.NewGuid());

            // Assert
            Assert.AreSame(image, dbImage);
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        public void ThrowInvalidOperationException_WhenNoSuchUser()
        {
            // Arrange
            var contextMock        = new Mock <ITravelGuideContext>();
            var imageFactoryMock   = new Mock <IGalleryImageFactory>();
            var commentFactoryMock = new Mock <IGalleryCommentFactory>();
            var likeFactoryMock    = new Mock <IGalleryLikeFactory>();

            var id      = "some name";
            var content = "some content";
            var guid    = Guid.NewGuid();

            contextMock.Setup(x => x.Users.Find(It.IsAny <string>())).Returns((User)null);

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

            // Act & Assert
            Assert.Throws <InvalidOperationException>(() => service.AddComment(id, content, guid));
        }
コード例 #15
0
        public void CallRemoveMethod_WhenInputParamsAreValid()
        {
            // Arrange
            var contextMock        = new Mock <ITravelGuideContext>();
            var imageFactoryMock   = new Mock <IGalleryImageFactory>();
            var commentFactoryMock = new Mock <IGalleryCommentFactory>();
            var likeFactoryMock    = new Mock <IGalleryLikeFactory>();
            var id      = Guid.NewGuid().ToString();
            var comment = new GalleryComment();

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

            // Act
            service.DeleteComment(id);

            // Assert
            contextMock.Verify(x => x.GalleryComments.Remove(comment), Times.Once);
        }
コード例 #16
0
        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);
        }
コード例 #17
0
        public void CallImageFactory_WhenParamsAreValid()
        {
            // Arrange
            var contextMock        = new Mock <ITravelGuideContext>();
            var imageFactoryMock   = new Mock <IGalleryImageFactory>();
            var commentFactoryMock = new Mock <IGalleryCommentFactory>();
            var likeFactoryMock    = new Mock <IGalleryLikeFactory>();
            var user = new User();

            var title = "some title";
            var id    = "some url";
            var url   = "url";

            contextMock.Setup(x => x.Users.Find(It.IsAny <string>())).Returns(user);
            contextMock.Setup(x => x.GalleryImages.Add(It.IsAny <GalleryImage>()));
            imageFactoryMock.Setup(x => x.CreateGalleryImage(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <User>()));
            var service = new GalleryImageService(contextMock.Object, imageFactoryMock.Object, likeFactoryMock.Object, commentFactoryMock.Object);

            // Act
            service.AddNewImage(id, title, url);

            // Assert
            imageFactoryMock.Verify(x => x.CreateGalleryImage(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <User>()), Times.Once);
        }