Esempio n. 1
0
        public void DeleteArticle_Valid_Id()
        {
            using (TransactionScope transaction = new TransactionScope())
            {
                articleRepository = new ArticlesRepository();
                int count = articleRepository.GetAllArticles().Count(); //Count articles pre-editting of existing article

                SMCC.Models.Article        originalArticle = new SMCC.Models.Article();
                SMCC.Models.Article        deleteArticle   = new SMCC.Models.Article();
                List <SMCC.Models.Article> existArticles   = new List <SMCC.Models.Article>();

                try
                {
                    //Set your controller ControllerContext with fake context
                    articleController.ControllerContext = MockContext().Object;

                    originalArticle = articleRepository.GetArticle(1);

                    var result = articleController.Delete(1) as ViewResult;
                    deleteArticle = (SMCC.Models.Article)result.ViewData.Model;

                    articleController.DeleteConfirmed(deleteArticle.ArticleId);
                }
                finally
                {
                    articleRepository = new ArticlesRepository();
                    existArticles     = articleRepository.GetAllArticles().ToList();

                    Assert.AreEqual(count - 1, existArticles.Count());               //Record count should be deducted by 1 after deletion
                    CollectionAssert.DoesNotContain(existArticles, originalArticle); // Article should no longer be present in db.
                }
            }
        }
        public async Task DeleteConfirmedTest_RemovesArticleFromRepository_AndRedirectsToIndex()
        {
            // Arrange
            var mockId      = 42;
            var mockArticle = new Article {
                Title = "mock article"
            };

            articlesRepoMock.Setup(repo => repo.GetOne(mockId)).Returns(Task.FromResult(mockArticle));
            articlesRepoMock.Setup(repo => repo.SaveChanges()).Returns(Task.CompletedTask);

            // Act
            var result = await controller.DeleteConfirmed(mockId);

            // Assert
            articlesRepoMock.Verify(repo => repo.Remove(mockArticle));
            var viewResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Equal("Index", viewResult.ActionName);
        }