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()); }
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); }
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 imageId = Guid.NewGuid(); var service = new GalleryImageService(contextMock.Object, imageFactoryMock.Object, likeFactoryMock.Object, commentFactoryMock.Object); // Act & Assert Assert.Throws <ArgumentNullException>(() => service.ToggleLike(id, imageId)); }