public async Task SuccessIfDifferent(string username, string password)
        {
            var manager   = MockHelpers.TestUserManager <IdentityUser>();
            var validator = new UsernameAsPasswordValidator <IdentityUser>();
            var user      = new IdentityUser {
                UserName = username
            };

            IdentityResultAssert.IsSuccess(await validator.ValidateAsync(manager, user, password));
        }
        public async Task FailsIfSame(string username, string password)
        {
            var manager   = MockHelpers.TestUserManager <IdentityUser>();
            var validator = new UsernameAsPasswordValidator <IdentityUser>();
            var user      = new IdentityUser {
                UserName = username
            };

            IdentityResultAssert.IsFailure(await validator.ValidateAsync(manager, user, password), _error);
        }
        public async Task ValidateDoesNotThrowWithNullUserTest()
        {
            // Setup
            var validator = new UsernameAsPasswordValidator <IdentityUser>();
            var manager   = MockHelpers.TestUserManager <IdentityUser>();
            var password  = "******";

            // Act
            // Assert
            IdentityResultAssert.IsSuccess(await validator.ValidateAsync(manager, null, password));
        }
        public async Task ValidateThrowsWithNullTest()
        {
            // Setup
            var validator = new UsernameAsPasswordValidator <IdentityUser>();

            // Act
            // Assert
            await Assert.ThrowsAsync <ArgumentNullException>("password", () => validator.ValidateAsync(null, null, null));

            await Assert.ThrowsAsync <ArgumentNullException>("manager", () => validator.ValidateAsync(null, null, "foo"));
        }