コード例 #1
0
        public async Task ValidateAsync_AggregatesOnlySyncErrors()
        {
            var validators           = new List <INewPasswordValidatorBase>();
            var asyncValidationError = new ValidationError("test-async");

            var mockAsyncValidator = new Mock <IAsyncNewPasswordValidator>();

            mockAsyncValidator
            .Setup(v => v.ValidateAsync(It.IsAny <INewPasswordValidationContext>()))
            .ReturnsAsync(asyncValidationError);
            validators.Add(mockAsyncValidator.Object);

            var maxLengthValidator = new MaxLengthNewPasswordValidator();

            maxLengthValidator.Configure(6);
            validators.Add(maxLengthValidator);

            var uniqueCharsValidator = new MinUniqueCharactersNewPasswordValidator();

            uniqueCharsValidator.Configure(5);
            validators.Add(uniqueCharsValidator);

            var policy  = new PasswordPolicy("test", validators, new Dictionary <string, string>());
            var context = new NewPasswordValidationContext()
            {
                Password = "******"
            };

            var errors = await policy.ValidateAsync(context);

            errors.Should().HaveCount(2);
            errors.Should().NotContain(asyncValidationError);
        }
        public void WhenNotSequential_ReturnsSuccess(string password)
        {
            var validator = new NotSequentialNewPasswordValidator();
            var context   = new NewPasswordValidationContext()
            {
                Password = password
            };

            var result = validator.Validate(context);

            result.Should().BeNull();
        }
        public void WhenNotEmail_ReturnsSuccess()
        {
            var validator = new NotBePersonalDataNewPasswordValidator();
            var context   = new NewPasswordValidationContext()
            {
                Password = "******",
                Email    = "*****@*****.**"
            };

            var result = validator.Validate(context);

            result.Should().BeNull();
        }
        public void WhenNotUsername_ReturnsSuccess()
        {
            var validator = new NotBePersonalDataNewPasswordValidator();
            var context   = new NewPasswordValidationContext()
            {
                Password = "******",
                Username = "******"
            };

            var result = validator.Validate(context);

            result.Should().BeNull();
        }
        public void WhenSequential_ReturnsError(string password)
        {
            var validator = new NotSequentialNewPasswordValidator();
            var context   = new NewPasswordValidationContext()
            {
                Password = password
            };

            var result = validator.Validate(context);

            result.Should().NotBeNull();
            result.ErrorCode.Should().Be(PasswordPolicyValidationErrors.NotSequential.ErrorCode);
        }
        public void WhenNotCurrant_ReturnsSuccess()
        {
            var validator = new NotCurrentPasswordNewPasswordValidator();
            var context   = new NewPasswordValidationContext()
            {
                Password        = "******",
                CurrentPassword = "******"
            };

            var result = validator.Validate(context);

            result.Should().BeNull();
        }
        public void WhenUsername_ReturnsError()
        {
            var validator = new NotBePersonalDataNewPasswordValidator();
            var context   = new NewPasswordValidationContext()
            {
                Password = "******",
                Username = "******"
            };

            var result = validator.Validate(context);

            result.Should().NotBeNull();
            result.ErrorCode.Should().Be(PasswordPolicyValidationErrors.NotPersonalData.Username.ErrorCode);
        }
        public void WhenEmail_ReturnsError()
        {
            var validator = new NotBePersonalDataNewPasswordValidator();
            var context   = new NewPasswordValidationContext()
            {
                Password = "******",
                Email    = "*****@*****.**"
            };

            var result = validator.Validate(context);

            result.Should().NotBeNull();
            result.ErrorCode.Should().Be(PasswordPolicyValidationErrors.NotPersonalData.Email.ErrorCode);
        }
        public void WhenCurrent_ReturnsError()
        {
            var validator = new NotCurrentPasswordNewPasswordValidator();
            var context   = new NewPasswordValidationContext()
            {
                Password        = "******",
                CurrentPassword = "******"
            };

            var result = validator.Validate(context);

            result.Should().NotBeNull();
            result.ErrorCode.Should().Be(PasswordPolicyValidationErrors.NotCurrentPassword.ErrorCode);
        }
        public void WhenMoreThanMin_ReturnsSuccess(string password)
        {
            var validator = new MinUniqueCharactersNewPasswordValidator();

            validator.Configure(3);

            var context = new NewPasswordValidationContext()
            {
                Password = password
            };

            var result = validator.Validate(context);

            result.Should().BeNull();
        }
コード例 #11
0
        public void WhenLessThanMaxLength_ReturnsSuccess(string password)
        {
            var validator = new MaxLengthNewPasswordValidator();

            validator.Configure(8);

            var context = new NewPasswordValidationContext()
            {
                Password = password
            };

            var result = validator.Validate(context);

            result.Should().BeNull();
        }
        public void WhenLessThanMin_ReturnsError(string password)
        {
            var validator = new MinUniqueCharactersNewPasswordValidator();

            validator.Configure(3);

            var context = new NewPasswordValidationContext()
            {
                Password = password
            };

            var result = validator.Validate(context);

            result.Should().NotBeNull();
            result.ErrorCode.Should().Be(PasswordPolicyValidationErrors.MinUniqueCharacters.ErrorCode);
        }
コード例 #13
0
        public void WhenMoreThanMaxLength_ReturnsError()
        {
            var validator = new MaxLengthNewPasswordValidator();

            validator.Configure(8);

            var context = new NewPasswordValidationContext()
            {
                Password = "******"
            };

            var result = validator.Validate(context);

            result.Should().NotBeNull();
            result.ErrorCode.Should().Be(PasswordPolicyValidationErrors.MaxLengthExceeded.ErrorCode);
        }