public async Task <IActionResult> Create([FromBody] AddOrUpdatePostDTO formData) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var resultModel = Convertor.ToPost(formData); await PostRepo.Add(resultModel); return(CreatedAtRoute("GetPost", new { Controller = "Post", id = resultModel.Id }, resultModel)); }
public async Task <IActionResult> Update([FromRoute] int id, [FromBody] AddOrUpdatePostDTO formData) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!PostExists(id).Result) { return(NotFound()); } var postItem = Convertor.ToPost(formData, id); await PostRepo.Update(id, postItem); return(NoContent()); }
public async Task Create_ShouldReturn_CreatedPost() { const string TEXT = "Unit Test Post goes here..."; #region Arrange int id = 1; var testPost = new Post() { Id = 1, Text = TEXT, CreatedBy = "aemloviji", InsertDate = DateTime.Now, }; var mockRepo = new Mock <IPostRepository>(); mockRepo.Setup(repo => repo.Find(id)) .Returns(Task.FromResult(testPost)); var controller = new PostController(mockRepo.Object); var newPost = new AddOrUpdatePostDTO() { Text = TEXT, CreatedBy = "aemloviji", InsertDate = DateTime.Now, }; mockRepo.Setup(repo => repo.Add(testPost)) .Returns(Task.CompletedTask) .Verifiable(); #endregion var actionResult = await controller.Create(newPost); Assert.IsInstanceOfType(actionResult, typeof(CreatedAtRouteResult)); var okResult = actionResult as CreatedAtRouteResult; Assert.IsInstanceOfType(okResult.Value, typeof(Post)); Assert.AreEqual(TEXT, (okResult.Value as Post).Text); }