public async Task Delete_Not_Success()
        {
            // Arrange
            var id   = Guid.NewGuid().ToString();
            var user = new ApplicationUser()
            {
                Id           = id,
                UserName     = "******",
                Email        = "*****@*****.**",
                PasswordHash = ""
            };
            var identityResult = IdentityResult.Failed("User not exist.");
            var service        = Substitute.For <IUserService>();
            var controller     = new UserManageController(service);

            service.FindUserAsync(id).Returns(Task.FromResult(user));
            service.DeleteUserAsync(user).Returns(Task.FromResult(identityResult));

            // Act
            var result = await controller.Delete(id) as HttpStatusCodeResult;

            var statusCode = result.StatusCode;

            service.FindUserAsync(id).Returns(Task.FromResult(user));

            // Assert
            Assert.That(result, !Is.Null);
            Assert.That(400, Is.EqualTo(statusCode));
        }
        public async Task Good_Delete()
        {
            // Arrange
            var id   = Guid.NewGuid().ToString();
            var user = new ApplicationUser()
            {
                Id           = id,
                UserName     = "******",
                Email        = "*****@*****.**",
                PasswordHash = ""
            };
            var identityResult = IdentityResult.Success;
            var service        = Substitute.For <IUserService>();
            var controller     = new UserManageController(service);

            service.FindUserAsync(id).Returns(Task.FromResult(user));
            service.DeleteUserAsync(user).Returns(Task.FromResult(identityResult));

            // Act
            var result = await controller.Delete(id) as RedirectToRouteResult;

            var areaName       = result.RouteValues.Values.ElementAt(0);
            var actionName     = result.RouteValues.Values.ElementAt(1);
            var controllerName = result.RouteValues.Values.ElementAt(2);

            // Assert
            Assert.That(result, !Is.Null);
            Assert.That("Index", Is.EqualTo(actionName));
            Assert.That("UserManage", Is.EqualTo(controllerName));
            Assert.That("admin", Is.EqualTo(areaName));
        }
        public async Task Delete_User_Is_Null()
        {
            // Arrange
            var             id         = "wdhjhfjdhj";
            ApplicationUser user       = null;
            var             service    = Substitute.For <IUserService>();
            var             controller = new UserManageController(service);

            // Act
            var result = await controller.Delete(id) as HttpNotFoundResult;

            var statusCode = result.StatusCode;

            service.FindUserAsync(id).Returns(Task.FromResult(user));

            // Assert
            Assert.That(result, !Is.Null);
            Assert.That(404, Is.EqualTo(statusCode));
        }