Ejemplo n.º 1
0
        public void Delete_NonExisting_News_Should_Return_400BadRequest()
        {
            // Arrange
            int id = this.GenerateNonExistingId();

            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.DeleteNews(id)
                           .ExecuteAsync(CancellationToken.None).Result;

            // Assert
            var fakeNewsAfterDeleting = this.mock.NewsRepositoryMock.Object.All().ToList();

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
            mockContext.Verify(c => c.SaveChanges(), Times.Never);
            Assert.AreEqual(5, fakeNewsAfterDeleting.Count);
        }
Ejemplo n.º 2
0
        public void Delete_Existing_News_Should_Return_200OK_And_Delete_News_From_Repository()
        {
            // Arrange
            var fakeNewsBeforeDeleting = this.mock.NewsRepositoryMock.Object.All().ToList();

            var fakeNewsToDelte = fakeNewsBeforeDeleting[0];

            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.DeleteNews(fakeNewsToDelte.Id)
                           .ExecuteAsync(CancellationToken.None).Result;

            // Assert
            var fakeNewsAfterDeleting = this.mock.NewsRepositoryMock.Object.All().ToList();
            var deletedFakeNewsInRepo = fakeNewsAfterDeleting
                                        .FirstOrDefault(n => n.Id == fakeNewsToDelte.Id);

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            mockContext.Verify(c => c.SaveChanges(), Times.Once);
            Assert.IsNull(deletedFakeNewsInRepo);
            Assert.AreEqual(4, fakeNewsAfterDeleting.Count);
        }
Ejemplo n.º 3
0
        public void DeleteUnexistingNewsItem_ShouldReturnBadRequest()
        {
            var controller = new NewsController(this.context);

            this.SetupController(controller);

            var response = controller.DeleteNews(2895).ExecuteAsync(CancellationToken.None).Result;

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }
Ejemplo n.º 4
0
        public void TestDeleteUnexistingNews()
        {
            var controller = new NewsController(repoMock.Object);

            SetupController(controller, "News");

            repoMock.Setup(repo => repo.Find(It.IsAny <object>())).Returns(null as News);

            var result = controller.DeleteNews(22).ExecuteAsync(new CancellationToken()).Result;

            Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode);
        }
Ejemplo n.º 5
0
        public void TestDeleteValidNews()
        {
            var controller = new NewsController(repoMock.Object);

            SetupController(controller, "News");

            var news = new News {
                Title = "Zaglavie", Content = "dadadada"
            };

            repoMock.Setup(repo => repo.Find(It.IsAny <object>())).Returns(news);

            var result = controller.DeleteNews(22).ExecuteAsync(new CancellationToken()).Result;

            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
        }
Ejemplo n.º 6
0
        public void TestDeleteNewsWithExistingIdShouldDeleteNews()
        {
            // Setup fake news
            var fakeNews = new News()
            {
                Id          = 1,
                Content     = "NotChanged",
                Title       = "NotChanged",
                PublishDate = DateTime.Now
            };

            var isNewsSaved = false;

            // Setup repositories
            var mockedRepository = new Mock <IRepository <News> >();

            mockedRepository.Setup(r => r.GetById(It.IsAny <int>()))
            .Returns(fakeNews);
            mockedRepository.Setup(r => r.Delete(It.Is <News>(n => n == fakeNews)))
            .Callback(() =>
            {
                fakeNews = null;
            });

            // Setup data layer
            var mockedContext = new Mock <INewsData>();

            mockedContext.Setup(c => c.News).Returns(mockedRepository.Object);
            mockedContext.Setup(r => r.SaveChanges())
            .Callback(() =>
            {
                isNewsSaved = true;
            });

            // Setup controller
            var controller = new NewsController(mockedContext.Object);

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();

            var response = controller.DeleteNews(1)
                           .ExecuteAsync(CancellationToken.None).Result;

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.IsNull(fakeNews);
            Assert.IsTrue(isNewsSaved);
        }
Ejemplo n.º 7
0
        public void Deleteing_Non_Existing_Item_Should_Return_BadRequest()
        {
            var mockContext = new Mock <INewsData>();

            mockContext.Setup(c => c.News)
            .Returns(_mocks.NewsRepoMock.Object);

            var newsController = new NewsController(mockContext.Object);

            SetupController(newsController);

            var response = newsController.DeleteNews(1000000).ExecuteAsync(CancellationToken.None).Result;

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

            mockContext.Verify(c => c.SaveChanges(), Times.Never);
        }
Ejemplo n.º 8
0
        public void DeleteNews_WhenNewsIdIsValid_ShouldReturnStatusCodeOkAndDeleteNews()
        {
            var repo       = CreateRepo();
            var controller = new NewsController(repo);

            SetupController(controller, "news");

            var result =
                controller.DeleteNews(2).ExecuteAsync(new CancellationToken()).Result;

            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
            Assert.AreEqual(2, repo.News.Count);

            var newsInRepo = repo.News.FirstOrDefault(n => n.Id == 2);

            Assert.IsNull(newsInRepo);
        }
Ejemplo n.º 9
0
        public void DeleteNews_WhenNewsIdIsInvalid_ShouldReturnStatusCodeBadRequestAndNotAffectBase()
        {
            var repo       = CreateRepo();
            var controller = new NewsController(repo);

            SetupController(controller, "news");

            var news = new NewsPostBindingModel()
            {
                Title       = "Updated Title",
                Content     = "Content4",
                PublishDate = DateTime.Parse("22.01.2014")
            };

            var result =
                controller.DeleteNews(4).ExecuteAsync(new CancellationToken()).Result;

            Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode);
            Assert.AreEqual(3, repo.News.Count);
        }
Ejemplo n.º 10
0
        public void DeleteExistingItem_ShouldDeleteTheItem()
        {
            var controller = new NewsController(this.context);

            this.SetupController(controller);

            var news = new NewsModel
            {
                Id          = 101,
                Title       = "Fire in the motel",
                Content     = "The fire fighters are doing their best.",
                PublishDate = DateTime.Now
            };

            this.context.Add(news);

            var response = controller.DeleteNews(news.Id).ExecuteAsync(CancellationToken.None).Result;

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
        }
Ejemplo n.º 11
0
        public void TestDeleteNewsWithNotExisingIdShouldReturnBadRequest()
        {
            // Setup repositories
            var mockedRepository = new Mock <IRepository <News> >();

            mockedRepository.Setup(r => r.GetById(It.IsAny <int>()))
            .Returns((News)null);

            // Setup data layer
            var mockedContext = new Mock <INewsData>();

            mockedContext.Setup(c => c.News).Returns(mockedRepository.Object);

            // Setup controller
            var controller = new NewsController(mockedContext.Object);

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();

            var response = controller.DeleteNews(1)
                           .ExecuteAsync(CancellationToken.None).Result;

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }