public void ShouldThrowExceptionWhenGetRelatedPostsFails() { _postRepository = new Mock<IPostRepository>(); _postRepository.Setup(a => a.Find(It.IsAny<Expression<Func<Post, bool>>>(), It.IsAny<Func<IQueryable<Post>, IOrderedQueryable<Post>>>(), It.IsAny<string>())) .Throws(new Exception()); _postContentRepository = new Mock<IPostContentRepository>(); _mediaRepository = new Mock<IMediaRepository>(); _postsLogic = new PostsLogic(_postRepository.Object, _postContentRepository.Object, _mediaRepository.Object); Assert.Throws<BlogException>(() => _postsLogic.GetRelatedPosts(1)); }
public void ShouldGetRelatedPostsEvenIfPostHasUserRelatedPostsFound() { var post = new Post { PostId = 1, PostLikes = _postLikes.Where(a => a.PostId == 1).ToList(), PostContents = _postContents.Where(a => a.PostId == 1).ToList(), Tags = new List<Tag>(), PostTitle = "Foo", PostMessage = "Lorem Ipsum Dolor", UserId = 1, User = new User { UserId = 1, UserName = "******", PictureId = 1, BackgroundId = 1 } }; _postRepository = new Mock<IPostRepository>(); _postRepository.Setup(a => a.Find(It.IsAny<Expression<Func<Post, bool>>>(), It.IsAny<Func<IQueryable<Post>, IOrderedQueryable<Post>>>(), It.IsAny<string>())) .Returns(new List<Post> { post }); _postRepository.Setup(a => a.GetPostsByTag(It.IsAny<string>(), It.IsAny<int>())) .Returns(new List<Post> { post }); _postRepository.Setup(a => a.GetByUser(It.IsAny<int>(), It.IsAny<int>())) .Returns(new List<Post>()); var postContents = _postContents.Where(a => a.PostId == 1).ToList(); _postContentRepository = new Mock<IPostContentRepository>(); _postContentRepository.Setup(a => a.Find(It.IsAny<Expression<Func<PostContent, bool>>>(), true)) .Returns(postContents); _mediaRepository = new Mock<IMediaRepository>(); _mediaRepository.Setup(a => a.Find(It.IsAny<Expression<Func<Media, bool>>>(), false)) .Returns(new List<Media> { new Media { MediaId = 1 } }); _postsLogic = new PostsLogic(_postRepository.Object, _postContentRepository.Object, _mediaRepository.Object); var result = _postsLogic.GetRelatedPosts(1); Assert.NotNull(result); Assert.NotNull(result.PostsByTags); Assert.NotNull(result.PostsByUser); }