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 }