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); }
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); }