Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }