public void Modify_Existing_News_With_InCorrect_Data_Should_Return_400BadRequest() { // Arrange var fakeNewsToModify = this.mock.NewsRepositoryMock.Object.All().FirstOrDefault(); var newNews = new NewsBindingModel { Title = "T", // invalid MinLength Content = "Modified content", PublishDate = new DateTime(2013, 12, 12) }; var mockContext = new Mock<INewsData>(); mockContext.Setup(c => c.News) .Returns(this.mock.NewsRepositoryMock.Object); var newsController = new NewsController(mockContext.Object); this.SetupController(newsController); newsController.ModelState.AddModelError("Title", "Title MinLength is 5."); // Act var response = newsController.ChangeNews(fakeNewsToModify.Id, newNews) .ExecuteAsync(CancellationToken.None).Result; // Assert var fakeNews = this.mock.NewsRepositoryMock.Object.All().ToList(); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); mockContext.Verify(c => c.SaveChanges(), Times.Never); Assert.AreEqual(fakeNewsToModify.Title, fakeNews[0].Title); Assert.AreEqual(fakeNewsToModify.Content, fakeNews[0].Content); Assert.AreEqual(fakeNewsToModify.PublishDate, fakeNews[0].PublishDate); }
public void Modify_NonExisting_News_Should_Return_400BadRequest() { // Arrange int id = this.GenerateNonExistingId(); var newNews = new NewsBindingModel { Title = "Modified title", Content = "Modified content", PublishDate = new DateTime(2013, 12, 12) }; var mockContext = new Mock<INewsData>(); mockContext.Setup(c => c.News) .Returns(this.mock.NewsRepositoryMock.Object); var newsController = new NewsController(mockContext.Object); this.SetupController(newsController); // Act var response = newsController.ChangeNews(id, newNews) .ExecuteAsync(CancellationToken.None).Result; // Assert Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); mockContext.Verify(c => c.SaveChanges(), Times.Never); }
public void Modify_Existing_News_With_Correct_Data_Should_Return_200OK_And_Modify_News_In_Repository() { // Arrange var fakeNewsToModify = this.mock.NewsRepositoryMock.Object.All().FirstOrDefault(); var newNews = new NewsBindingModel { Title = "Modified Title", Content = "Modified content", PublishDate = new DateTime(2013, 12, 12) }; var mockContext = new Mock<INewsData>(); mockContext.Setup(c => c.News) .Returns(this.mock.NewsRepositoryMock.Object); var newsController = new NewsController(mockContext.Object); this.SetupController(newsController); // Act var response = newsController.ChangeNews(fakeNewsToModify.Id, newNews) .ExecuteAsync(CancellationToken.None).Result; // Assert var fakeNews = this.mock.NewsRepositoryMock.Object.All().ToList(); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); mockContext.Verify(c => c.SaveChanges(), Times.Once); Assert.AreEqual(newNews.Title, fakeNews[4].Title); Assert.AreEqual(newNews.Content, fakeNews[4].Content); Assert.AreEqual(newNews.PublishDate, fakeNews[4].PublishDate); }