Example #1
0
        public UserService(IUnitOfWork uow, IEmailService emailService)
        {
            _emailService = emailService;

            _uow = uow;

            _passwordValidator = new PasswordValidator();

            _userValidator = new FluentUserValidator(this);
        }
        public void Fluent_User_Validator()
        {
            FluentUserValidator userValidator = new FluentUserValidator(_userService);

            ValidationResult validationResult;

            #region Valid
            User valid = validUser();

            validationResult = userValidator.Validate(valid);

            Assert.IsTrue(validationResult.IsValid);
            #endregion

            #region Email
            //Email
            //  Empty
            User emptyEmailAddress = validUser();

            emptyEmailAddress.EmailAddress = "";

            validationResult = userValidator.Validate(emptyEmailAddress);

            Assert.IsTrue(validationResult.Errors.ContainsErrorForProperty <User>(u => u.EmailAddress));

            //  Invalid Format
            User invalidFormateEmailAddress = validUser();

            invalidFormateEmailAddress.EmailAddress = "emailInvalidFormat";

            validationResult = userValidator.Validate(invalidFormateEmailAddress);

            Assert.IsTrue(validationResult.Errors.ContainsErrorForProperty <User>(u => u.EmailAddress));

            //  A user already exists with this email
            User alreadyExistingEmailAddress = validUser();

            alreadyExistingEmailAddress.EmailAddress = _existingUser.EmailAddress;

            validationResult = userValidator.Validate(alreadyExistingEmailAddress);

            Assert.IsTrue(validationResult.Errors.ContainsErrorForProperty <User>(u => u.EmailAddress));
            #endregion

            #region PasswordHash
            //PasswordHash
            //  Empty
            User emptyPasswordHash = validUser();

            emptyPasswordHash.PasswordHash = "";

            validationResult = userValidator.Validate(emptyPasswordHash);

            Assert.IsTrue(validationResult.Errors.ContainsErrorForProperty <User>(u => u.PasswordHash));
            #endregion

            #region Username
            //Username
            //  Empty
            User emptyUsername = validUser();

            emptyUsername.Username = "";

            validationResult = userValidator.Validate(emptyUsername);

            Assert.IsTrue(validationResult.Errors.ContainsErrorForProperty <User>(u => u.Username));
            //  Too Short MinLength 6
            User usernameTooShort = validUser();

            usernameTooShort.Username = "******";

            validationResult = userValidator.Validate(usernameTooShort);

            Assert.IsTrue(validationResult.Errors.ContainsErrorForProperty <User>(u => u.Username));
            //  Too Long MaxLength 60
            User usernameTooLong = validUser();

            usernameTooLong.Username = SixtyOneCharacterString;

            validationResult = userValidator.Validate(usernameTooLong);

            Assert.IsTrue(validationResult.Errors.ContainsErrorForProperty <User>(u => u.Username));

            //  A user already exists with this username
            User usernameAlreadyExists = validUser();

            usernameAlreadyExists.Username = _existingUser.Username;

            validationResult = userValidator.Validate(usernameAlreadyExists);

            Assert.IsTrue(validationResult.Errors.ContainsErrorForProperty <User>(u => u.Username));
            #endregion
        }