Exemplo n.º 1
0
        public void Put_TryingToModifyNonExistantItemShouldReturn400BadRequest()
        {
            var fakeNews = this.mocks.NewsRepositoryMock.Object.All();
            int nonExistingNewsId = 5;

            this.mocks.NewsRepositoryMock
                .Setup(r => r.Update(It.IsAny<NewsModel>()))
                .Callback((NewsModel newsModel) =>
                {
                    var news = fakeNews.FirstOrDefault(fn => fn.Id == nonExistingNewsId);

                    news.Title = newsModel.Title;
                    news.Content = newsModel.Content;
                    news.PublishDate = newsModel.PublishDate;
                });

            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 updateNews = new PutNewsBindingModel()
            {
                Title = "Updated news",
                Content = "Updated content",
                PublishDate = new DateTime(2015, 9, 5)
            };
            var response = newsController.Put(nonExistingNewsId, updateNews)
                .ExecuteAsync(CancellationToken.None).Result;

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }
Exemplo n.º 2
0
        public void Put_ShouldModifyExistingItemAndReturn200OKOnCorrectData()
        {
            var fakeNews = this.mocks.NewsRepositoryMock.Object.All();
            int existingNewsId = 1;

            this.mocks.NewsRepositoryMock
                .Setup(r => r.Update(It.IsAny<NewsModel>()))
                .Callback((NewsModel newsModel) =>
                {
                    var news = fakeNews.FirstOrDefault(fn => fn.Id == existingNewsId);

                    news.Title = newsModel.Title;
                    news.Content = newsModel.Content;
                    news.PublishDate = newsModel.PublishDate;
                });

            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 updateNews = new PutNewsBindingModel()
            {
                Title = "Updated news",
                Content = "Updated content",
                PublishDate = new DateTime(2015, 9, 5)
            };
            var response = newsController.Put(existingNewsId, updateNews)
                .ExecuteAsync(CancellationToken.None).Result;

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

            var updatedNews = response.Content
                .ReadAsAsync<NewsModel>()
                .Result;

            Assert.AreEqual(updateNews.Title, updatedNews.Title);
            Assert.AreEqual(updateNews.Content, updatedNews.Content);
            Assert.AreEqual(updateNews.PublishDate, updatedNews.PublishDate);
        }