public void ShouldGetRelatedPosts()
{
var post = new Post
{
PostId = 1,
PostLikes = _postLikes.Where(a => a.PostId == 1).ToList(),
PostContents = _postContents.Where(a => a.PostId == 1).ToList(),
Tags = _tags.Where(a => a.TagId != 3).ToList(),
PostTitle = "Foo",
PostMessage = "Lorem Ipsum Dolor",
UserId = 1,
User = new User
{
UserId = 1,
UserName = "Lorem",
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> { 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);
}