public void UpdateNews_WithCorrectData_ShouldUpdateTheNewsAndReturn200Ok() { // Arrange var initialNew = new News() { Id = 1, Title = "Test news #1", Content = "Test content #1", }; var controller = new NewsController(this.dataLayerMocked); this.SetupController(controller, "news"); // Act this.dataLayerMocked.News.Add(initialNew); var httpGetResponse = controller.GetAllNews().ExecuteAsync(new CancellationToken()).Result; var newsFromService = httpGetResponse.Content.ReadAsAsync <List <News> >().Result; var updatedNew = new UpdateNewInputModel() { Title = "Updated", Content = "Tralala" }; var newsId = newsFromService[0].Id; var httpPutResponse = controller.UpdateNewById(newsId, updatedNew).ExecuteAsync(new CancellationToken()).Result; var result = httpPutResponse.Content.ReadAsAsync <News>().Result; // Assert Assert.AreEqual(updatedNew.Title, result.Title); Assert.AreEqual(updatedNew.Content, result.Content); }
public IHttpActionResult UpdateNewById(int id, UpdateNewInputModel inputModel) { if (inputModel == null) { return(this.BadRequest()); } var news = this.Data.News.All().FirstOrDefault(n => n.Id == id); if (news == null) { return(this.NotFound()); } if (inputModel.Title != null) { news.Title = inputModel.Title; } if (inputModel.Content != null) { news.Content = inputModel.Content; } if (inputModel.PublishedAt != null) { news.PublishedAt = Convert.ToDateTime(inputModel.PublishedAt); } this.Data.News.Update(news); this.Data.SaveChanges(); var newOutputModel = new GetAllNewsViewModel() { Id = news.Id, Content = news.Content, Title = news.Title, PublishedDate = news.PublishedAt }; return(this.Ok(newOutputModel)); }