public void CreateNewsWithWrongBindingModelShouldReturnBadRequest() { var controller = new NewsController(this.mock.NewsRepositoryMock.Object); this.SetupController(controller); var newsBind = new NewsBindingModel(); controller.ModelState.AddModelError("BadRequest", "Content can't be empty."); var response = controller.CreateNews(newsBind).ExecuteAsync(CancellationToken.None).Result; Assert.IsNotNull(response); Assert.AreEqual(response.StatusCode, HttpStatusCode.BadRequest); }
public void CreateNewsAddToRepositoryShouldReturnCreated() { var controller = new NewsController(this.mock.NewsRepositoryMock.Object); this.SetupController(controller); var newsBind = new NewsBindingModel { Title = "Some new news", Content = "Content", PublishedDate = DateTime.Now }; var response = controller.CreateNews(newsBind).ExecuteAsync(CancellationToken.None).Result; Assert.IsNotNull(response); Assert.AreEqual(response.StatusCode, HttpStatusCode.Created); }
public void CreateNewsItemWithCorrectData() { var repo = new RepositoryMock<News>(); repo.IsSaveCalled = false; repo.Entities = new Dictionary<object, News>(); var news = new News() { Id = 1, AuthorId = "valid", Title = "valid", Content = "valid", PublishDate = DateTime.Now }; var controller = new NewsController(repo); this.SetupController(controller, "news"); // Act var httpResponse = controller.CreateNews(new NewsBindingModel() { Id = news.Id, AuthorId = news.AuthorId, Title = news.Title, Content = news.Content, PublishDate = news.PublishDate }).ExecuteAsync(new CancellationToken()).Result; // Assert Assert.AreEqual(HttpStatusCode.Created, httpResponse.StatusCode); Assert.IsNotNull(httpResponse.Headers.Location); var newsFromService = httpResponse.Content.ReadAsAsync<News>().Result; Assert.AreEqual(newsFromService.Title, news.Title); Assert.AreEqual(newsFromService.AuthorId, news.AuthorId); Assert.AreEqual(newsFromService.Content, news.Content); Assert.AreEqual(newsFromService.Id, news.Id); Assert.IsNotNull(newsFromService.PublishDate); Assert.AreEqual(repo.Entities.Count, 1); var newsInRepo = repo.Entities.First().Value; Assert.AreEqual(news.Title, newsInRepo.Title); Assert.AreEqual(news.Id, newsInRepo.Id); Assert.AreEqual(news.Content, newsInRepo.Content); Assert.AreEqual(news.AuthorId, newsInRepo.AuthorId); Assert.IsNotNull(newsInRepo.PublishDate); Assert.IsTrue(repo.IsSaveCalled); }
public void DeleteExistingNewsItem() { var repo = new RepositoryMock<News>(); var controller = new NewsController(repo); this.SetupController(controller, "news"); // Act var news = new News() { Id = 1, Title = "valid", AuthorId = "valid", PublishDate = DateTime.Now, Content = "valid" }; var result = controller.CreateNews(new NewsBindingModel() { Id = news.Id, AuthorId = news.AuthorId, Title = news.Title, Content = news.Content, PublishDate = news.PublishDate }).ExecuteAsync(new CancellationToken()).Result; var theCreatedNews = repo.Entities.First().Value; var deleteResult = controller.DeletelNews(theCreatedNews.Id).ExecuteAsync(new CancellationToken()).Result; Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); Assert.AreEqual(repo.Entities.Count, 0); }
public void ModifyExistingNewsItemWithIncorrectData() { var repo = new RepositoryMock<News>(); var controller = new NewsController(repo); this.SetupController(controller, "news"); // Act var news = new News() { Id = 1, Title = "valid", AuthorId = "valid", PublishDate = DateTime.Now, Content = "valid" }; var result = controller.CreateNews(new NewsBindingModel() { Id = news.Id, AuthorId = news.AuthorId, Title = news.Title, Content = news.Content, PublishDate = news.PublishDate }).ExecuteAsync(new CancellationToken()).Result; var theCreatedNews = repo.Entities.First().Value; theCreatedNews.Content = null; var editResult = controller.EditNews(theCreatedNews.Id, new NewsBindingModel() { Id = theCreatedNews.Id, AuthorId = theCreatedNews.AuthorId, Title = theCreatedNews.Title, Content = theCreatedNews.Content, PublishDate = theCreatedNews.PublishDate }).ExecuteAsync(new CancellationToken()).Result; Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode); }
public void CreateNewsItemWithIncorrectData() { var repo = new RepositoryMock<News>(); var controller = new NewsController(repo); this.SetupController(controller, "news"); // Act var news = new News() { Id = 1, Title = "valid", AuthorId = "valid", PublishDate = DateTime.Now, Content = null }; var result = controller.CreateNews(new NewsBindingModel() { Id = news.Id, AuthorId = news.AuthorId, Title = news.Title, Content = news.Content, PublishDate = news.PublishDate }).ExecuteAsync(new CancellationToken()).Result; // Assert Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode); }