Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }