public void UpdateNews_WithNonExisitngNewsNews_ReturnsBadRequest()
        {
            // Arange
            var mockRepository = new Mock<INewsData>();
            News[] news = 
            {
                new News { Id = 100, Title = "News number 1", Content = "Content of first news", PublishDate = DateTime.Now }
            };

            mockRepository.Setup(rep => rep.News.Update(It.IsAny<News>())).Verifiable();
            mockRepository.Setup(rep => rep.News.Find(It.IsAny<int>())).Returns(news.First());
            var modifiedNewsItem = new News { Id = 1000, Title = "Modified title", Content = "Content of first news", PublishDate = DateTime.Now };

            var controller = new NewsController(mockRepository.Object);

            // Act
            IHttpActionResult result = controller.Put(modifiedNewsItem);

            // Assert
            Assert.IsInstanceOfType(result, typeof(BadRequestResult));
        }
        public void UpdateNews_WithValidNews_ReturnsOKAndModifiedNews()
        {
            // Arange
            var mockRepository = new Mock<INewsData>();
            News[] news = 
            {
                new News { Id = 100, Title = "News number 1", Content = "Content of first news", PublishDate = DateTime.Now }
            };

            mockRepository.Setup(rep => rep.News.Update(It.IsAny<News>())).Verifiable();
            mockRepository.Setup(rep => rep.News.Find(It.IsAny<int>())).Returns(news.First());
            var modifiedNewsItem = new News { Id = 100, Title = "Modified title", Content = "Content of first news", PublishDate = DateTime.Now };

            var controller = new NewsController(mockRepository.Object);

            // Act
            IHttpActionResult result = controller.Put(modifiedNewsItem);
            var updatedResult = result as NegotiatedContentResult<News>;

            // Assert
            Assert.IsNotNull(updatedResult);
            Assert.AreEqual("Modified title", updatedResult.Content.Title);
            Assert.IsInstanceOfType(result, typeof(NegotiatedContentResult<News>));
            Assert.IsNotNull(updatedResult.Content);
        }
        public void UpdateNews_WithInvalidNews_ReturnsBadRequest()
        {
            // Arange
            var mockRepository = new Mock<INewsData>();
            var controller = new NewsController(mockRepository.Object);

            // Act
            IHttpActionResult result = controller.Put(new News());

            // Assert
            Assert.IsInstanceOfType(result, typeof(BadRequestResult));
        }