示例#1
0
        public async Task Add_New_Comment()
        {
            var gameId   = GamesTestData.FirstGame.Id;
            var comments = await _commentService.GetAllCommentsForGame(GamesTestData.FirstGame.Id);

            var parentCommentId = comments.First();
            var newAnswer       = new CommentModel
            {
                Name = "Answer",
                Body = "This is answer"
            };
            await _commentService.AddAnswerToCommentAsync(gameId, parentCommentId.Id, newAnswer);

            var commentsWithAnswer = await _commentService.GetAllCommentsForGame(GamesTestData.FirstGame.Id)
                                     .ContinueWith(x => x.Result.FirstOrDefault(c => c.Id == parentCommentId.Id));

            var answer = commentsWithAnswer.Answers.FirstOrDefault(x => x.Body == newAnswer.Body);

            MultiplyAssertion.For(() =>
            {
                answer.Should().NotBeNull();
                answer.Body.Should().Be(newAnswer.Body);
            });
        }
 public async Task <IActionResult> AddAnswerToComment(Guid id, Guid commentId, [FromBody] CommentModel model) =>
 (await _commentService.AddAnswerToCommentAsync(id, commentId, model))
 .OnSuccess(x => (IActionResult)Ok(x))
 .OnFailure(_ => BadRequest(), error => error is ArgumentNullError)
 .OnFailure(error => error.ToObjectResult(), error => error != null)
 .OnFailure(_ => ModelState.ToObjectResult());