public static Comment ToComment(AddOrUpdateCommentDTO item, int id = 0) { return(new Comment { Id = id, Text = item.Text, InsertDate = DateTime.Now, PostId = item.PostId }); }
public async Task <IActionResult> Create([FromBody] AddOrUpdateCommentDTO formData) { if (formData == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var postItem = Convertor.ToComment(formData); await CommentRepo.Add(postItem); return(CreatedAtRoute("GetComment", new { Controller = "Comment", id = postItem.Id }, postItem)); }
public async Task <IActionResult> Update([FromRoute] int id, [FromBody] AddOrUpdateCommentDTO formData) { if (formData == null) { return(BadRequest()); } if (!CommentExists(id).Result) { return(NotFound()); } var postItem = Convertor.ToComment(formData, id); await CommentRepo.Update(id, postItem); return(NoContent()); }
public async Task Create_ShouldReturn_CreatedComment() { const string TEXT = "Unit Test comments goes here..."; #region Arrange int id = 1; var testComment = new Comment() { Id = 1, Text = TEXT, PostId = 1, InsertDate = DateTime.Now, }; var mockRepo = new Mock <ICommentRepository>(); mockRepo.Setup(repo => repo.Find(id)) .Returns(Task.FromResult(testComment)); var controller = new CommentController(mockRepo.Object); var newComment = new AddOrUpdateCommentDTO() { Text = TEXT, PostId = 1, }; mockRepo.Setup(repo => repo.Add(testComment)) .Returns(Task.CompletedTask) .Verifiable(); #endregion var actionResult = await controller.Create(newComment); Assert.IsInstanceOfType(actionResult, typeof(CreatedAtRouteResult)); var okResult = actionResult as CreatedAtRouteResult; Assert.IsInstanceOfType(okResult.Value, typeof(Comment)); Assert.AreEqual(TEXT, (okResult.Value as Comment).Text); }