public void MapFrom_Should_ReturnCorrectInstanceOfCommentCollection() { //Arrange var sut = new CommentViewModelMapper(); var comment = new List <Comment> { new Comment { Id = Guid.NewGuid(), ReviewId = Guid.NewGuid(), UserId = Guid.NewGuid(), Author = "testAuthor", CommentText = "TestText", CreatedOn = DateTime.MinValue, }, new Comment { Id = Guid.NewGuid(), ReviewId = Guid.NewGuid(), UserId = Guid.NewGuid(), Author = "testAuthor02", CommentText = "TestText02", CreatedOn = DateTime.MinValue, }, }; //Act var result = sut.MapFrom(comment); //Assert Assert.IsInstanceOfType(result, typeof(List <CommentViewModel>)); }
public void EnsureMapperMapsCorrectly() { //Arrange var sut = new CommentViewModelMapper(); var comment = new Comment { Id = Guid.NewGuid(), ReviewId = Guid.NewGuid(), UserId = Guid.NewGuid(), Author = "testAuthor", CommentText = "TestText", CreatedOn = DateTime.MinValue, }; //Act var result = sut.MapFrom(comment); //Assert Assert.AreEqual(result.Id, comment.Id); Assert.AreEqual(result.ReviewId, comment.ReviewId); Assert.AreEqual(result.UserId, comment.UserId); Assert.AreEqual(result.Author, comment.Author); Assert.AreEqual(result.CommentText, comment.CommentText); Assert.AreEqual(result.CreatedOn, comment.CreatedOn); }
public void MapFrom_ShouldReturnCorrectNumberOfComments() { //Arrange var sut = new CommentViewModelMapper(); var comment = new List <Comment> { new Comment { Id = Guid.NewGuid(), ReviewId = Guid.NewGuid(), UserId = Guid.NewGuid(), Author = "testAuthor", CommentText = "TestText", CreatedOn = DateTime.MinValue, }, new Comment { Id = Guid.NewGuid(), ReviewId = Guid.NewGuid(), UserId = Guid.NewGuid(), Author = "testAuthor02", CommentText = "TestText02", CreatedOn = DateTime.MinValue, }, }; //Act var result = sut.MapFrom(comment); //Assert Assert.AreEqual(2, result.Count()); }
public async Task <IViewComponentResult> InvokeAsync(Guid postId, int page = 0) { var comments = await _commentService.GetPagedResult(page, 10, x => x.Post.Id == postId && x.IsReply == false, x => x.DateCreated); var data = comments.Select(x => CommentViewModelMapper.Map(x)).ToList(); List <Core.Entities.Comment> replies = await _commentService.GetReplies(postId); foreach (var item in data) { FillReplies(item, replies); } var commentsResult = new PagedList <CommentViewModel>(data, comments.PageIndex, comments.PageSize, comments.ResultsCaunt, comments.TotalCaunt); return(await Task.FromResult((IViewComponentResult)View(commentsResult))); }
public void ReturnValidInstanceOfClass() { //Arrange var sut = new CommentViewModelMapper(); var comment = new Comment { Id = Guid.NewGuid(), ReviewId = Guid.NewGuid(), UserId = Guid.NewGuid(), Author = "testAuthor", CommentText = "TestText", CreatedOn = DateTime.MinValue, }; //Act var result = sut.MapFrom(comment); //Assert Assert.IsInstanceOfType(result, typeof(CommentViewModel)); }
/// <summary> /// Recursively itterates and fill all replies per comment /// </summary> /// <param name="comment">current comment</param> /// <param name="allreplies">all comments marked as "IsReply" per post</param> private void FillReplies(CommentViewModel comment, List <Core.Entities.Comment> allreplies) { if (!allreplies.Any(r => r.InReplyTo.Equals(comment.CommentId)))//no replies for this comment { return; } List <CommentViewModel> replies = allreplies.Where(r => r.InReplyTo.Equals(comment.CommentId)).Select(x => CommentViewModelMapper.Map(x)).ToList(); foreach (var item in replies) { FillReplies(item, allreplies); } comment.Replies = replies; }