public void TestDeleteSuccess() { //Arrange Mock<AppUser> mockUser = new Mock<AppUser>(); Mock<IAdminRepository> mockRepo = new Mock<IAdminRepository>(); mockRepo.Setup(x => x.FindUser(It.IsAny<string>())). Returns(Task.FromResult<AppUser>(mockUser.Object)); mockRepo.Setup(x => x.DeleteQuestionsAndCommentsFromUser(mockUser.Object)); mockRepo.Setup(x => x.DeleteUser(mockUser.Object)). Returns(Task.FromResult<IdentityResult>(IdentityResult.Success)); AdminController target = new AdminController(mockRepo.Object); //Act Task<ActionResult> result = target.Delete("") as Task<ActionResult>; //Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result.Result, typeof(RedirectToRouteResult)); RedirectToRouteResult redirectRouteResult = result.Result as RedirectToRouteResult; Assert.AreEqual("ManageUsers", redirectRouteResult.RouteValues["Action"]); mockRepo.Verify(x => x.FindUser(It.IsAny<string>()), Times.Once()); mockRepo.Verify(x => x.DeleteQuestionsAndCommentsFromUser(It.IsAny<AppUser>()), Times.Once()); mockRepo.Verify(x => x.DeleteUser(It.IsAny<AppUser>()), Times.Once()); }