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); }