public IHttpActionResult CreateNew(CreateNewInputModel inputModel) { if (inputModel == null) { return(this.BadRequest()); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var news = new News { Content = inputModel.Content, Title = inputModel.Title, PublishedAt = DateTime.Now }; this.Data.News.Add(news); this.Data.SaveChanges(); var newOutputModel = new GetAllNewsViewModel() { Id = news.Id, Content = news.Content, Title = news.Title, PublishedDate = news.PublishedAt }; return(this.CreatedAtRoute("DefaultApi", new { controller = "news", id = newOutputModel.Id }, newOutputModel)); }
public void CreateNews_WithCorrectData_ShouldCreateNewsAndReturn201Created() { // Arrange var news = new CreateNewInputModel() { Title = "Test news #1", Content = "Test content #1", }; this.dataLayerMocked.IsChangeSaved = false; var controller = new NewsController(this.dataLayerMocked); this.SetupController(controller, "news"); // Act var httpResponse = controller.CreateNew(news).ExecuteAsync(new CancellationToken()).Result; var newsFromService = httpResponse.Content.ReadAsAsync <News>().Result; // Arrange Assert.IsTrue(this.dataLayerMocked.IsChangeSaved); Assert.AreEqual(HttpStatusCode.Created, httpResponse.StatusCode); Assert.AreEqual(news.Title, newsFromService.Title); Assert.AreEqual(news.Content, newsFromService.Content); }