public void Validate_GivenValidAccounttype_ShouldNotHaveError()
            {
                RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>();

                subject.ShouldNotHaveValidationErrorFor(x => x.AccountType, "Consultant");
                subject.ShouldNotHaveValidationErrorFor(x => x.AccountType, "AccountExecutive");
            }
            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 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_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 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__Correct_email_format__Should_be_valid([Values(
                                                                         "*****@*****.**",
                                                                         "*****@*****.**",
                                                                         "*****@*****.**",
                                                                         "*****@*****.**",
                                                                         "*****@*****.**",
                                                                         "*****@*****.**",
                                                                         "*****@*****.**",
                                                                         "*****@*****.**",
                                                                         "admin@mailserver1",
                                                                         "*****@*****.**",
                                                                         "\" \"@example.org",
                                                                         "\"john..doe\"@example.org")] string email)
        {
            var validRegisterVM = new RegisterViewModel {
                EmailAddress = email
            };

            _validator.ShouldNotHaveValidationErrorFor(x => x.EmailAddress, validRegisterVM);
        }
            public void Validate_GivenValidPassword_ShouldNotHaveError()
            {
                RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>();

                subject.ShouldNotHaveValidationErrorFor(x => x.Password, "passw0rd");
            }
            public void Validate_GivenPopulatedLastName_ShouldNotHaveError()
            {
                RegisterViewModelValidator subject = _fixture.Create <RegisterViewModelValidator>();

                subject.ShouldNotHaveValidationErrorFor(x => x.LastName, "last name");
            }