public void ShouldNotRegisterUserIfEmailNotUnique() { EnsureZeroUsers(); using (var database = AdminAppIdentityDbContext.Create()) { var user = new AdminAppUser() { Email = "*****@*****.**", UserName = "******" }; database.Users.Add(user); database.SaveChanges(); } var newUser = new RegisterViewModel { Email = "*****@*****.**", Password = "******", ConfirmPassword = "******" }; var validator = new RegisterViewModelValidator(); var validationResults = validator.Validate(newUser); validationResults.IsValid.ShouldBe(false); validationResults.Errors.Select(x => x.ErrorMessage).ShouldContain("A user with the email already exists in the database"); }
public async Task Validate__Given_role_exist_in_db__Should_be_valid() { string role = "admin"; using (var factory = new DbContextFactory()) { using (var context = await factory.CreateContextAsync()) { context.Roles.Add(new IdentityRole { Name = role, NormalizedName = role.ToUpper() }); await context.SaveChangesAsync(); } using (var context = await factory.CreateContextAsync()) { var validRegisterVM = new RegisterViewModel { Role = role }; var validator = new RegisterViewModelValidator(context); validator.ShouldNotHaveValidationErrorFor(x => x.Role, validRegisterVM); } } }
public void Validate_GivenValidAccounttype_ShouldNotHaveError() { RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); subject.ShouldNotHaveValidationErrorFor(x => x.AccountType, "Consultant"); subject.ShouldNotHaveValidationErrorFor(x => x.AccountType, "AccountExecutive"); }
public async Task <IActionResult> Register([FromForm] RegisterViewModel model) { if (await _customerAppService.IsAuthenticated()) { return(Redirect(SystemDefine.HomePage)); } var validator = RegisterViewModelValidator.ValidateModel(model); model = await _customerAppService.Register(model); if (!model.IsSuccess && model.Messages.Count > 0) { foreach (var message in model.Messages) { ModelState.AddModelError(string.Empty, message); } } if (!validator.IsValid) { validator.AddToModelState(ModelState, null, model); } if (validator.IsValid && model.IsSuccess) { //await SetLogin(model.EmailOrMobile, false); return(RedirectToAction("RegisterSuccess")); } return(PartialView(model)); }
public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { var validator = new RegisterViewModelValidator(); var result = validator.Validate(this); return(result.Errors.Select(item => new ValidationResult(item.ErrorMessage, new[] { item.PropertyName }))); }
public void Validate_GivenValidPhoneNumber_ShouldNotHaveError() { RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); subject.ShouldNotHaveValidationErrorFor(x => x.PhoneNumber, "1234567890"); subject.ShouldNotHaveValidationErrorFor(x => x.PhoneNumber, "(123) 456-7890"); subject.ShouldNotHaveValidationErrorFor(x => x.PhoneNumber, "123-456-7890"); }
public void Validate_GivenEmailAddressInUse_ShouldHaveError() { var fakeUserManager = new Mock <IUserManager>(); fakeUserManager.Setup(x => x.GetUserIdForEmailAddress("*****@*****.**")).Returns(123); _fixture.Inject(fakeUserManager.Object); RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); subject.ShouldHaveValidationErrorFor(x => x.EmailAddress, "*****@*****.**"); }
public void Validate_GivenMatchingPasswords_ShouldNotHaveError() { RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); RegisterViewModel viewModel = new RegisterViewModel(); viewModel.Password = "******"; viewModel.ConfirmPassword = "******"; subject.ShouldNotHaveValidationErrorFor(x => x.ConfirmPassword, viewModel); }
public void Validate_GivenPopulatedPasswordButDifferentConfirmPassword_ShouldHaveError() { RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); RegisterViewModel viewModel = new RegisterViewModel(); viewModel.Password = "******"; viewModel.ConfirmPassword = "******"; subject.ShouldHaveValidationErrorFor(x => x.ConfirmPassword, viewModel); }
public void Validate_GivenAvailableEmailAddress_ShouldNotHaveError() { var fakeUserManager = new Mock <IUserManager>(); fakeUserManager.Setup(x => x.GetUserIdForEmailAddress("*****@*****.**")).Returns(null as int?); _fixture.Inject(fakeUserManager.Object); RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); subject.ShouldNotHaveValidationErrorFor(x => x.EmailAddress, "*****@*****.**"); }
public override Task <OperationResult <UserProfileViewModel> > Handle(RegisterRequest request, CancellationToken cancellationToken) { var registerViewModelValidator = new RegisterViewModelValidator(); var result = registerViewModelValidator.Validate(request.Model); if (result.IsValid) { return(_accountService.RegisterAsync(request.Model)); } var operation = OperationResult.CreateResult <UserProfileViewModel>(); operation.AppendLog(result.Errors.Select(x => x.ErrorMessage)); return(Task.FromResult(operation)); }
public void ShouldNotRegisterUserIfRequiredFieldsEmpty() { var newUser = new RegisterViewModel(); var validator = new RegisterViewModelValidator(); var validationResults = validator.Validate(newUser); validationResults.IsValid.ShouldBe(false); validationResults.Errors.Select(x => x.ErrorMessage).ShouldBe(new List <string> { "'Email' must not be empty.", "'Password' must not be empty.", "'Confirm Password' must not be empty." }, false); }
public void ShouldNotRegisterUserIfPasswordsDoNotMatch() { var newUser = new RegisterViewModel { Email = "*****@*****.**", Password = "******", ConfirmPassword = "******" }; var validator = new RegisterViewModelValidator(); var validationResults = validator.Validate(newUser); validationResults.IsValid.ShouldBe(false); validationResults.Errors.Select(x => x.ErrorMessage).ShouldContain("The password and confirmation password do not match."); }
public void ShouldNotRegisterUserIfEmailNotValid() { var newUser = new RegisterViewModel { Email = "not-a-valid-email", Password = "******", ConfirmPassword = "******" }; var validator = new RegisterViewModelValidator(); var validationResults = validator.Validate(newUser); validationResults.IsValid.ShouldBe(false); validationResults.Errors.Select(x => x.ErrorMessage).ShouldContain("'Email' is not a valid email address."); }
public void ShouldNotRegisterUserIfPasswordLengthNotValid(string testPassword) { var newUser = new RegisterViewModel { Email = "*****@*****.**", Password = testPassword, ConfirmPassword = testPassword }; var validator = new RegisterViewModelValidator(); var validationResults = validator.Validate(newUser); validationResults.IsValid.ShouldBe(false); validationResults.Errors.Single().ErrorMessage.ShouldContain($"'Password' must be between 6 and 100 characters. You entered {testPassword.Length} characters."); }
public async Task Validate__Given_role_does_not_exist_in_db__should_be_invalid() { using (var factory = new DbContextFactory()) { using (var context = await factory.CreateContextAsync()) { context.Roles.RemoveRange(await context.Roles.ToArrayAsync()); await context.SaveChangesAsync(); } using (var context = await factory.CreateContextAsync()) { var invalidRegisterVM = new RegisterViewModel { Role = "adasd" }; var validator = new RegisterViewModelValidator(context); validator.ShouldHaveValidationErrorFor(x => x.Role, invalidRegisterVM); } } }
public void Validate_GivenPopulatedLastName_ShouldNotHaveError() { RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); subject.ShouldNotHaveValidationErrorFor(x => x.LastName, "last name"); }
public void SetUp() { _dbContext = new Mock <ApplicationDbContext>(Mock.Of <DbContextOptions <ApplicationDbContext> >(o => o.ContextType == typeof(ApplicationDbContext))).Object; _validator = new RegisterViewModelValidator(_dbContext); }
public void Validate_GivenOnlyLetters_ShouldHaveError() { RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); subject.ShouldHaveValidationErrorFor(x => x.Password, "superawesomepassword"); }
public void Validate_GivenValidPassword_ShouldNotHaveError() { RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); subject.ShouldNotHaveValidationErrorFor(x => x.Password, "passw0rd"); }
public void Validate_GivenFewerThan7Characters_ShouldHaveError() { RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); subject.ShouldHaveValidationErrorFor(x => x.Password, "p4ss"); }
public void Validate_GivenOnlyNumbers_ShouldHaveError() { RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); subject.ShouldHaveValidationErrorFor(x => x.Password, "1234567890"); }
public void Validate_GivenEmptyPassword_ShouldHaveError() { RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); subject.ShouldHaveValidationErrorFor(x => x.Password, null as string); }
public void SetUp() { _validator = new RegisterViewModelValidator(); }
public void Validate_GivenInvalidAccounttype_ShouldHaveError() { RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); subject.ShouldHaveValidationErrorFor(x => x.AccountType, "NotAValidAccounType"); }
public void Validate_GivenInvalidEmailAddress_ShouldHaveError() { RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); subject.ShouldHaveValidationErrorFor(x => x.EmailAddress, "invalid email address"); }
public void Validate_GivenInvalidPhoneNumber_ShouldHaveError() { RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>(); subject.ShouldHaveValidationErrorFor(x => x.PhoneNumber, "123 Invalid 456 Phone Number"); }