Beispiel #1
0
        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");
            }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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, "*****@*****.**");
            }
Beispiel #11
0
        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));
        }
Beispiel #12
0
        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);
        }
Beispiel #13
0
        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.");
        }
Beispiel #14
0
        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.");
        }
Beispiel #15
0
        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");
            }