// PUT api/news/5 public IHttpActionResult Put(int id, [FromBody] NewsItemOutputModel newsItemOutput) { if (newsItemOutput == null) { this.ModelState.AddModelError("newsItem", "There is no news to change"); } var newsItemForChange = this.NewsData.News.All().FirstOrDefault(n => n.Id == id); if (newsItemForChange == null) { return(this.NotFound()); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } newsItemForChange.Content = newsItemOutput.Content; newsItemForChange.PublishDate = newsItemOutput.PublishDate; newsItemForChange.Title = newsItemOutput.Title; this.NewsData.SaveChanges(); return(this.Ok()); }
public void PostNewsItemWithValidDataShouldSucceed() { var news = new List <NewsItem> { new NewsItem { Title = "FirstNews", Content = "FirstNewsContent", PublishDate = DateTime.Now, UserId = "2", User = new ApplicationUser() { UserName = "******" } }, new NewsItem { Title = "SecondNews", Content = "SecondNewsContent", PublishDate = DateTime.Now.AddDays(-3), UserId = "2", User = new ApplicationUser() { UserName = "******" } }, new NewsItem { Title = "ThirdNews", Content = "ThirdNewsContent", PublishDate = DateTime.Now.AddDays(-10), UserId = "2", User = new ApplicationUser() { UserName = "******" } } }; var dataMock = new Mock <INewsData>(); dataMock.Setup(r => r.News).Returns(this.GetMockedNewsItem(news)); var controller = new NewsController(dataMock.Object); this.SetupController(controller, "NewsController"); var newNewsItem = new NewsItemOutputModel() { Title = "ThirdNews", Content = "ThirdNewsContent", PublishDate = DateTime.Now.AddDays(8) }; var result = controller.Post(newNewsItem).ExecuteAsync(new CancellationToken()).Result; Assert.AreEqual(HttpStatusCode.Created, result.StatusCode); Assert.AreEqual(newNewsItem.Title, news.Last().Title); Assert.AreEqual(newNewsItem.Content, news.Last().Content); Assert.IsNotNull(news.Last().PublishDate); }
// POST api/news public IHttpActionResult Post([FromBody] NewsItemOutputModel newsItemOutput) { if (newsItemOutput == null) { this.ModelState.AddModelError("newsItem", "There is no news to add"); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var userId = this.User.Identity.GetUserId(); var newNewsItem = new NewsItem { Content = newsItemOutput.Content, PublishDate = newsItemOutput.PublishDate, Title = newsItemOutput.Title, UserId = userId, }; this.NewsData.News.Add(newNewsItem); this.NewsData.SaveChanges(); newsItemOutput.Id = newNewsItem.Id; return(this.Created("DefaultApi", newsItemOutput)); }