public void Post_ShouldReturn201CreatedAndCreateNewNewsAndReturnIt() { var news = new List<NewsModel>(); this.mocks.NewsRepositoryMock .Setup(r => r.Add(It.IsAny<NewsModel>())) .Callback((NewsModel newsModel) => { news.Add(newsModel); }); var mockContext = new Mock<INewsData>(); mockContext .Setup(c => c.News) .Returns(this.mocks.NewsRepositoryMock.Object); var newsController = new NewsController(mockContext.Object); this.SetupController(newsController); var newNews = new PostNewsBindingModel() { Title = "New News", Content = "The news is new" }; var response = newsController.Post(newNews) .ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(HttpStatusCode.Created, response.StatusCode); var returnedNews = response.Content .ReadAsAsync<NewsModel>() .Result; Assert.IsTrue(returnedNews != null); Assert.AreEqual(newNews.Title, returnedNews.Title); Assert.AreEqual(newNews.Content, returnedNews.Content); }
public void Post_ShouldReturn400BadRequestOnNullContent() { var news = new List<NewsModel>(); this.mocks.NewsRepositoryMock .Setup(r => r.Add(It.IsAny<NewsModel>())) .Callback((NewsModel newsModel) => { news.Add(newsModel); }); var mockContext = new Mock<INewsData>(); mockContext .Setup(c => c.News) .Returns(this.mocks.NewsRepositoryMock.Object); var newsController = new NewsController(mockContext.Object); this.SetupController(newsController); var newNews = new PostNewsBindingModel() { Title = "Null content", Content = null }; newsController.Validate(newNews); var response = newsController.Post(newNews) .ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }