protected override void Context()
        {
            base.Context();
            _createAccountRequest = new CreateAccountRequest
                                        {
                                            FirstName = "Colin",
                                            LastName = "Callahan",
                                            EmailAddress = "*****@*****.**",
                                            Username = "******",
                                            Role = Role.Employee,
                                        };

            AuthorizationService.Stub(
                x => x.CanExecute(Arg<string>.Is.Equal(Username), Arg<Type>.Is.Equal(typeof (CreateAccountRequest)))).
                Return(true);

            _createAccountRequestValidator = MockRepository.GenerateStub<CreateAccountRequestValidator>();
            _createAccountRequestValidator.Stub(
                x => x.Validate(Arg<CreateAccountRequest>.Is.Equal(_createAccountRequest)))
                .Return(new ValidationResult());

            ValidatorFactory.Stub(
                x => x.GetValidator<CreateAccountRequest>())
                .Return(_createAccountRequestValidator);

            AccountRepository.Stub(x => x.UserNameExists(Arg<string>.Is.Equal(_createAccountRequest.Username)))
                .Return(false);

            CryptographyService.Stub(x => x.Encrypt(Arg<string>.Is.Equal(_createAccountRequest.Username + "_password")))
                .Return(EncryptedPassword);

            AccountRepository.Stub(
                x => x.Create(Arg<CreateAccountRequest>.Is.Equal(_createAccountRequest),
                         Arg<string>.Is.Equal(EncryptedPassword)))
                .WhenCalled(x => _createAccountRequestPassedToRepository = x.Arguments[0] as CreateAccountRequest)
                .WhenCalled(x => _encryptedPasswordPassedToRepository = x.Arguments[1].ToString());

            SettingsProvider.Stub(x => x.GetEmailSettings())
                .Return(new EmailSettings
                            {
                                AdminEmailAddress = AdminEmailAddress,
                            });

            EmailService.Stub(x => x.SendEmail(Arg<SendMailRequest>.Is.Anything))
                .WhenCalled(x => _sendMailRequestPassedToMailService = x.Arguments[0] as SendMailRequest);

            _expectedCreateAccountResponse = new CreateAccountResponse
                                                 {
                                                     Success = true,
                                                 };

            _expectedCreateAccountRequest = new CreateAccountRequest
                                                {
                                                    FirstName = "Colin",
                                                    LastName = "Callahan",
                                                    EmailAddress = "*****@*****.**",
                                                    Username = "******",
                                                    Role = Role.Employee,
                                                };
        }
        protected override void Context()
        {
            base.Context();
            _createAccountRequest = new CreateAccountRequest
                                        {
                                            FirstName = "Colin",
                                            LastName = "Callahan",
                                            EmailAddress = "*****@*****.**",
                                        };

            AuthorizationService.Stub(
                x => x.CanExecute(Arg<string>.Is.Equal(Username), Arg<Type>.Is.Equal(typeof (CreateAccountRequest)))).
                Return(true);

            _createAccountRequestValidator = MockRepository.GenerateStub<CreateAccountRequestValidator>();
            _createAccountRequestValidator.Stub(
                x => x.Validate(Arg<CreateAccountRequest>.Is.Equal(_createAccountRequest)))
                .Return(new ValidationResult());

            ValidatorFactory.Stub(
                x => x.GetValidator<CreateAccountRequest>())
                .Return(_createAccountRequestValidator);

            AccountRepository.Stub(x => x.UserNameExists(Arg<string>.Is.Equal(_createAccountRequest.Username)))
                .Return(true);

            _expectedCreateAccountResponse = new CreateAccountResponse
                                                 {
                                                     Success = false,
                                                     Errors = new List<string>{"The username " + _createAccountRequest.Username + " is unavailable.",}
                                                 };
        }
Esempio n. 3
0
        public void should_validate_request()
        {
            var validator = new CreateAccountRequestValidator();

            validator.ShouldHaveValidationErrorFor(x => x.Id, null as Guid?);
            validator.ShouldHaveValidationErrorFor(x => x.Id, Guid.Empty);

            validator.ShouldHaveValidationErrorFor(x => x.Name, null as AccountName);

            var nameValidator = new AccountNameValidator();

            nameValidator.ShouldHaveValidationErrorFor(x => x.Name, null as string);
            nameValidator.ShouldHaveValidationErrorFor(x => x.Name, new string('a', AccountService.AccountName.MaxLength + 10));

            nameValidator.ShouldHaveValidationErrorFor(x => x.Language, null as Language?);
            nameValidator.ShouldHaveValidationErrorFor(x => x.Language, (Language)666);

            var validRequest = new CreateAccountRequest
            {
                Id   = Guid.NewGuid(),
                Name = new AccountName
                {
                    Name     = "Bla",
                    Language = Language.Dutch
                }
            };

            validator.ShouldNotHaveValidationErrorFor(x => x.Id, validRequest);
            validator.ShouldNotHaveValidationErrorFor(x => x.Name, validRequest);
            validator.ShouldNotHaveValidationErrorFor(x => x.Name.Name, validRequest);
            validator.ShouldNotHaveValidationErrorFor(x => x.Name.Language, validRequest);
        }
        protected override void Context()
        {
            base.Context();

            _createAccountRequest = new CreateAccountRequest();

            AuthorizationService.Stub(
                x => x.CanExecute(Arg<string>.Is.Equal(Username), Arg<Type>.Is.Equal(typeof (CreateAccountRequest)))).
                Return(true);

            _validationResultReturnedFromValidator = new ValidationResult(new List<ValidationFailure>
                                                                              {
                                                                                  new ValidationFailure("FirstName",
                                                                                                        "First Name cannot be empty."),
                                                                                  new ValidationFailure("LastName",
                                                                                                        "Last Name cannot be empty."),
                                                                                  new ValidationFailure("EmailAddress",
                                                                                                        "Email Address cannot be empty."),
                                                                                  new ValidationFailure("Username",
                                                                                                        "Username cannot be empty."),
                                                                                  new ValidationFailure("Role",
                                                                                                        "Role cannot be empty."),

                                                                              });

            _createAccountRequestValidator = MockRepository.GenerateStub<CreateAccountRequestValidator>();
            _createAccountRequestValidator.Stub(
                x => x.Validate(Arg<CreateAccountRequest>.Is.Equal(_createAccountRequest)))
                .Return(_validationResultReturnedFromValidator);

            ValidatorFactory.Stub(
                x => x.GetValidator<CreateAccountRequest>())
                .Return(_createAccountRequestValidator);

            _expectedCreateAccountResponse = new CreateAccountResponse
                                                 {
                                                     Success = false,
                                                     Errors = _validationResultReturnedFromValidator.Errors.Select(x=>x.ErrorMessage),
                                                 };
        }
        protected override void Context()
        {
            base.Context();

            _expectedCreateAccountRequestValidator = Builder<CreateAccountRequestValidator>.CreateNew().Build();
        }
 protected override void Context()
 {
     Validator = new CreateAccountRequestValidator();
 }