public void AddNewsItem_WhenDataIsIncorect_ReturnAddedNewsItemAndStatusCode401BadRequest()
        {
            // Arrange
            var news = new BindingNewsModel
            {
                Content = "News content",
            };

            this.SetupController(controller, "news");

            // Act
            var httpResponse = this.controller.Post(news).ExecuteAsync(new CancellationToken()).Result;
            var newsItem     = httpResponse.Content.ReadAsAsync <NewsItem>().Result;
        }
        public void AddNewsItem_WhenDataIsNull_ReturnAddedNewsItemAndStatusCode401BadRequest()
        {
            // Arrange
            BindingNewsModel news = null;

            this.SetupController(controller, "news");

            // Act
            var httpResponse = this.controller.Post(news).ExecuteAsync(new CancellationToken()).Result;
            var message      = httpResponse.Content.ReadAsAsync <Dictionary <string, string> >().Result;

            // Assert
            Assert.AreEqual(HttpStatusCode.BadRequest, httpResponse.StatusCode);
            Assert.AreEqual("Enter news!", message["Message"]);
        }
        public IHttpActionResult Put(int id, [FromBody] BindingNewsModel model)
        {
            var newsItem = this.Data.News.All()
                           .FirstOrDefault(u => u.Id == id);

            if (newsItem == null)
            {
                return(this.NotFound());
            }

            newsItem.Title   = model.Title;
            newsItem.Content = model.Content;

            this.Data.News.Update(newsItem);
            this.Data.SaveChanges();

            return(this.Ok(newsItem));
        }
        public void AddNewsItem_WhenDataIsCorect_ReturnAddedNewsItemAndStatusCode200Ok()
        {
            // Arrange
            var news = new BindingNewsModel
            {
                Title   = "news 1",
                Content = "News content",
            };

            this.SetupController(controller, "news");

            // Act
            var httpResponse = this.controller.Post(news).ExecuteAsync(new CancellationToken()).Result;
            var newsItem     = httpResponse.Content.ReadAsAsync <NewsItem>().Result;

            // Assert
            Assert.AreEqual(HttpStatusCode.OK, httpResponse.StatusCode);
        }
        public IHttpActionResult Post([FromBody] BindingNewsModel model)
        {
            if (model == null)
            {
                return(this.BadRequest("Enter news!"));
            }

            if (!ModelState.IsValid)
            {
                return(this.BadRequest(ModelState));
            }

            var newsItem = new NewsItem
            {
                Title       = model.Title,
                Content     = model.Content,
                PublishDate = DateTime.Now
            };

            this.Data.News.Add(newsItem);
            this.Data.SaveChanges();

            return(this.Ok(newsItem));
        }