public void ExpectCreateAccount(AccountManagement.AccountRegistration accountRegistration)
 {
     this._mock.Setup(
         it =>
         it.CreateAccount(
             It.Is <AccountManagement.AccountRegistration>(
                 actual => AccountRegistrationEqualityComparer.Instance.Equals(accountRegistration, actual)))).Verifiable();
 }
        public void CreatesNewAccount()
        {
            this._accountRegistrationService.GivenUsernameIsAvailable(_bwilsonUsername);

            var expectedAccountRegistration = new AccountManagement.AccountRegistration(_bwilsonUsername, _password, _bwilsonFullName, _bwilsonEmail);

            this._accountRegistrationService.ExpectCreateAccount(expectedAccountRegistration);

            this._controller.SignUp(TestAccountRegistration);

            this._accountRegistrationService.Verify();
        }
        public ActionResult SignUp(AccountRegistration information)
        {
            var username = new Username(information.Username);

            bool usernameIsAvailable = _accountRegistrationService.IsUsernameAvailable(username);

            if (!usernameIsAvailable)
            {
                TempData.RegistrationFailureReason.Store(RegistrationFailureReason.UsernameNotAvailable);
                TempData.AccountRegistrationInformation.Store(information);
                return(RedirectToAction <AccountController>(c => c.SignUp()));
            }

            var password             = new Password(information.Password);
            var passwordConfirmation = new Password(information.PasswordConfirmation);

            if (!password.Equals(passwordConfirmation))
            {
                TempData.RegistrationFailureReason.Store(RegistrationFailureReason.PasswordsDoNotMatch);
                return(RedirectToAction <AccountController>(c => c.SignUp()));
            }

            var emailAddress             = new EmailAddress(information.Email);
            var emailAddressConfirmation = new EmailAddress(information.EmailConfirmation);

            if (!emailAddress.Equals(emailAddressConfirmation))
            {
                TempData.RegistrationFailureReason.Store(RegistrationFailureReason.EmailsDoNotMatch);
                return(RedirectToAction <AccountController>(c => c.SignUp()));
            }

            var foo = new GivenNames();

            var fullName            = new FullName(new Name(information.LastName), new GivenNames(information.FirstName));
            var accountRegistration = new AccountManagement.AccountRegistration(username, password, fullName, new EmailAddress(information.Email));

            _accountRegistrationService.CreateAccount(accountRegistration);

            TempData.NewAccountUsername.Store(accountRegistration.Username);
            return(RedirectToAction <AccountController>(c => c.SignUpComplete()));
        }
 public void CreateAccount(AccountManagement.AccountRegistration accountRegistration)
 {
     this._mock.Object.CreateAccount(accountRegistration);
 }
        public ActionResult SignUp(AccountRegistration information)
        {
            var username = new Username(information.Username);

            bool usernameIsAvailable = _accountRegistrationService.IsUsernameAvailable(username);
            if (!usernameIsAvailable) {
                TempData.RegistrationFailureReason.Store(RegistrationFailureReason.UsernameNotAvailable);
                TempData.AccountRegistrationInformation.Store(information);
                return RedirectToAction<AccountController>(c => c.SignUp());
            }

            var password = new Password(information.Password);
            var passwordConfirmation = new Password(information.PasswordConfirmation);
            if (!password.Equals(passwordConfirmation)) {
                TempData.RegistrationFailureReason.Store(RegistrationFailureReason.PasswordsDoNotMatch);
                return RedirectToAction<AccountController>(c => c.SignUp());
            }

            var emailAddress = new EmailAddress(information.Email);
            var emailAddressConfirmation = new EmailAddress(information.EmailConfirmation);
            if (!emailAddress.Equals(emailAddressConfirmation)) {
                TempData.RegistrationFailureReason.Store(RegistrationFailureReason.EmailsDoNotMatch);
                return RedirectToAction<AccountController>(c => c.SignUp());
            }

            var foo = new GivenNames();

            var fullName = new FullName(new Name(information.LastName), new GivenNames(information.FirstName));
            var accountRegistration = new AccountManagement.AccountRegistration(username, password, fullName, new EmailAddress(information.Email));
            _accountRegistrationService.CreateAccount(accountRegistration);

            TempData.NewAccountUsername.Store(accountRegistration.Username);
            return RedirectToAction<AccountController>(c => c.SignUpComplete());
        }