public void PostComment_WhenCalled_ShouldSaveCommentToDatabase()
        {
            var question  = _context.AddTestQuestionToDatabase();
            var answer    = _context.AddTestAnswerToDatabase(question.Id);
            var viewModel = new AnswerPostCommentViewModel(answer.Id, "Comment");

            var result = _controller.PostComment(viewModel);

            var comment = _contextAfterAction.Comments.Single();

            Assert.That(comment.AnswerId, Is.EqualTo(answer.Id));
            Assert.That(comment.Content, Is.EqualTo("Comment"));
            Assert.That((result as OkNegotiatedContentResult <int>).Content, Is.EqualTo(1));
        }
Beispiel #2
0
        public IHttpActionResult PostComment(AnswerPostCommentViewModel answerPostCommentViewModel)
        {
            _unitOfWork.CommentRepository.Add(new Comment
            {
                AnswerId    = answerPostCommentViewModel.AnswerId,
                Content     = answerPostCommentViewModel.Comment,
                AppUserId   = User.Identity.GetUserId(),
                CreatedDate = DateTime.Now
            });
            _unitOfWork.Complete();

            var newTotalCount     = _unitOfWork.CommentRepository.Count(c => c.AnswerId == answerPostCommentViewModel.AnswerId);
            var newTotalPageCount = (newTotalCount - 1) / Constants.CommentPageSize + 1;

            return(Ok(newTotalPageCount));
        }