public async Task FailsIfTooShortTests(string input)
        {
            const string error   = "Passwords must be at least 6 characters.";
            var          manager = MockHelpers.TestUserManager <IdentityUser>();
            var          valid   = new PasswordValidator <IdentityUser>();

            manager.Options.Password.RequireUppercase        = false;
            manager.Options.Password.RequireNonLetterOrDigit = false;
            manager.Options.Password.RequireLowercase        = false;
            manager.Options.Password.RequireDigit            = false;
            IdentityResultAssert.IsFailure(await valid.ValidateAsync(manager, null, input), error);
        }
        public async Task FailsWithoutRequiredNonAlphanumericTests(string input)
        {
            var manager = MockHelpers.TestUserManager <IdentityUser>();
            var valid   = new PasswordValidator <IdentityUser>();

            manager.Options.Password.RequireUppercase        = false;
            manager.Options.Password.RequireNonLetterOrDigit = true;
            manager.Options.Password.RequireLowercase        = false;
            manager.Options.Password.RequireDigit            = false;
            manager.Options.Password.RequiredLength          = 0;
            IdentityResultAssert.IsFailure(await valid.ValidateAsync(manager, null, input),
                                           "Passwords must have at least one non letter and non digit character.");
        }
Exemple #3
0
        public async Task ValidateFailsWithTooShortUserNames(string input)
        {
            // Setup
            var manager   = MockHelpers.TestUserManager(new NoopUserStore());
            var validator = new UserValidator <TestUser>();
            var user      = new TestUser {
                UserName = input
            };

            // Act
            var result = await validator.ValidateAsync(manager, user);

            // Assert
            IdentityResultAssert.IsFailure(result, new IdentityErrorDescriber().InvalidUserName(input));
        }
Exemple #4
0
        public async Task ValidateFailsWithTooShortRoleName(string input)
        {
            // Setup
            var validator = new RoleValidator <TestRole>();
            var manager   = new RoleManager <TestRole>(new NoopRoleStore(), null);
            var user      = new TestRole {
                Name = input
            };

            // Act
            var result = await validator.ValidateAsync(manager, user);

            // Assert
            IdentityResultAssert.IsFailure(result, "Name cannot be null or empty.");
        }
Exemple #5
0
        public async Task ValidateFailsWithTooShortRoleName(string input)
        {
            // Setup
            var validator = new RoleValidator <TestRole>();
            var manager   = MockHelpers.TestRoleManager <TestRole>();
            var user      = new TestRole {
                Name = input
            };

            // Act
            var result = await validator.ValidateAsync(manager, user);

            // Assert
            IdentityResultAssert.IsFailure(result, new IdentityErrorDescriber().InvalidRoleName(input));
        }
        public async Task ValidateFailsWithTooShortUserNames(string input)
        {
            // Setup
            var manager   = MockHelpers.TestUserManager(new NoopUserStore());
            var validator = new UserValidator <TestUser>();
            var user      = new TestUser {
                UserName = input
            };

            // Act
            var result = await validator.ValidateAsync(manager, user);

            // Assert
            IdentityResultAssert.IsFailure(result, "UserName cannot be null or empty.");
        }
        public async Task UberMixedRequiredTests(string input, Errors errorMask)
        {
            const string alphaError  = "Passwords must have at least one non letter and non digit character.";
            const string upperError  = "Passwords must have at least one uppercase ('A'-'Z').";
            const string lowerError  = "Passwords must have at least one lowercase ('a'-'z').";
            const string digitError  = "Passwords must have at least one digit ('0'-'9').";
            const string lengthError = "Passwords must be at least 6 characters.";
            var          manager     = MockHelpers.TestUserManager <IdentityUser>();
            var          valid       = new PasswordValidator <IdentityUser>();
            var          errors      = new List <string>();

            if ((errorMask & Errors.Length) != Errors.None)
            {
                errors.Add(lengthError);
            }
            if ((errorMask & Errors.Alpha) != Errors.None)
            {
                errors.Add(alphaError);
            }
            if ((errorMask & Errors.Digit) != Errors.None)
            {
                errors.Add(digitError);
            }
            if ((errorMask & Errors.Lower) != Errors.None)
            {
                errors.Add(lowerError);
            }
            if ((errorMask & Errors.Upper) != Errors.None)
            {
                errors.Add(upperError);
            }
            var result = await valid.ValidateAsync(manager, null, input);

            if (errors.Count == 0)
            {
                IdentityResultAssert.IsSuccess(result);
            }
            else
            {
                IdentityResultAssert.IsFailure(result);
                foreach (var error in errors)
                {
                    Assert.True(result.Errors.Any(e => e.Description == error));
                }
            }
        }
Exemple #8
0
        public async Task DefaultAlphaNumericOnlyUserNameValidation(string userName, bool expectSuccess)
        {
            // Setup
            var manager   = MockHelpers.TestUserManager(new NoopUserStore());
            var validator = new UserValidator <TestUser>();
            var user      = new TestUser {
                UserName = userName
            };

            // Act
            var result = await validator.ValidateAsync(manager, user);

            // Assert
            if (expectSuccess)
            {
                IdentityResultAssert.IsSuccess(result);
            }
            else
            {
                IdentityResultAssert.IsFailure(result);
            }
        }
Exemple #9
0
        public async Task CanAllowNonAlphaNumericUserName(string userName, bool expectSuccess)
        {
            // Setup
            var manager = MockHelpers.TestUserManager(new NoopUserStore());

            manager.Options.User.AllowedUserNameCharacters = null;
            var validator = new UserValidator <TestUser>();
            var user      = new TestUser {
                UserName = userName
            };

            // Act
            var result = await validator.ValidateAsync(manager, user);

            // Assert
            if (expectSuccess)
            {
                IdentityResultAssert.IsSuccess(result);
            }
            else
            {
                IdentityResultAssert.IsFailure(result);
            }
        }