public void Modifying_Non_Existing_News_Should_Return_BadRequest() { var updatedNews = new NewsBindingModel { Title = "Update", Content = "Update", PublishedOn = DateTime.Now }; var mockContext = new Mock<INewsData>(); mockContext.Setup(c => c.News) .Returns(_mocks.NewsRepoMock.Object); var newsController = new NewsController(mockContext.Object); SetupController(newsController); var response = newsController.UpdateNews(100000, updatedNews).ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(response.StatusCode, HttpStatusCode.BadRequest); mockContext.Verify(c => c.SaveChanges(), Times.Never); }
public void Modify_Existing_News_Item_With_Correct_Data_Modifies_The_Item() { var updatedNews = new NewsBindingModel { Title = "Update", Content = "Update", PublishedOn = DateTime.Now }; var mockContext = new Mock<INewsData>(); mockContext.Setup(c => c.News) .Returns(_mocks.NewsRepoMock.Object); var newsController = new NewsController(mockContext.Object); SetupController(newsController); var response = newsController.UpdateNews(1,updatedNews).ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(response.StatusCode, HttpStatusCode.OK); mockContext.Verify(c => c.SaveChanges(), Times.Once); }
public void TestModifyUnexistingNews() { var controller = new NewsController(repoMock.Object); SetupController(controller, "News"); repoMock.Setup(repo => repo.Find(It.IsAny<object>())).Returns(null as News); var updatedNews = new NewsBindingModel { Title = "Zaglavie", Content = "Changed content" }; var result = controller.UpdateNews(18, updatedNews).ExecuteAsync(new CancellationToken()).Result; Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode); }
public void TestModifyValidNews() { var controller = new NewsController(repoMock.Object); SetupController(controller, "News"); var news = new News { Id = 18, Title = "Zaglavie", Content = "dadadada" }; repoMock.Setup(repo => repo.Find(It.IsAny<object>())).Returns(news); var updatedNews = new NewsBindingModel { Title = "Zaglavie", Content = "Changed content" }; var result = controller.UpdateNews(18, updatedNews).ExecuteAsync(new CancellationToken()).Result; Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); var returnedNews = result.Content.ReadAsAsync<News>().Result; Assert.AreEqual(updatedNews.Title, returnedNews.Title); Assert.AreEqual(updatedNews.Content, returnedNews.Content); Assert.AreEqual(news.Title, returnedNews.Title); }
public void TestModifyInvalidNews() { var controller = new NewsController(repoMock.Object); SetupController(controller, "News"); var news = new News { Id = 18, Title = "Zaglavie", Content = "dadadada" }; repoMock.Setup(repo => repo.Find(It.IsAny<object>())).Returns(news); var invalidNews = new NewsBindingModel { Content = "No title" }; // it's not the controller's job to validate - there is a validator controller.ModelState.AddModelError("Title", "Required"); var result = controller.UpdateNews(18, invalidNews).ExecuteAsync(new CancellationToken()).Result; Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode); }