public void ValidatesLoginNameIsAnEmail()
        {
            _email = "MooMooCow";
            var request = CreateRequestFromFieldProperties();
            var handler = new RegisterUserHandle(_userRepo);

            var response = handler.Handle(request);

            Assert.That((object) response.Status, Is.EqualTo(ResponseCodes.BadUserNameFormat));
        }
        public void ChecksToSeeIfUserAlreadyExists()
        {
            _email = _existingUser;
            var request = CreateRequestFromFieldProperties();
            var handler = new RegisterUserHandle(_userRepo);

            var response = handler.Handle(request);

            Assert.That((object) response.Status, Is.EqualTo(ResponseCodes.UserAlreadyExists));
        }
        public void ValidatesMaxPasswordLength()
        {
            _password = "******";
            _confirmPassword = "******";
            var request = CreateRequestFromFieldProperties();
            var handler = new RegisterUserHandle(_userRepo);

            var response = handler.Handle(request);

            Assert.That((object) response.Status, Is.EqualTo(ResponseCodes.BadPasswordLength));
        }
        public void CanHandle()
        {
            _loginWasCreated = false;
            var request = CreateRequestFromFieldProperties();
            var handler = new RegisterUserHandle(_userRepo);

            var response = handler.Handle(request);

            Assert.That((object) response.Status, Is.EqualTo(ResponseCodes.Success));
            Assert.True(_loginWasCreated);
        }
        public ActionResult Register(RegisterModel model)
        {
            var handler = new RegisterUserHandle(new UserRepository());

            var request = new RegisterUserRequest()
                              {
                                  ConfirmPassword = model.ConfirmPassword,
                                  LoginEmail = model.UserName,
                                  Password = model.Password
                              };

            var response = handler.Handle(request);

            if (response.Status == ResponseCodes.Success)
            {
                FormsAuthentication.SetAuthCookie(model.UserName, true);
                return RedirectToAction("ChooseProfile", "Profile");
            }

            var errorMessage = response.Status.GetMessage();
            ModelState.AddModelError("", errorMessage);

            return View(model);
        }
        public void ValidatesPasswordAndConfirmPasswordMatch()
        {
            _confirmPassword = "******";
            var request = CreateRequestFromFieldProperties();
            var handler = new RegisterUserHandle(_userRepo);

            var response = handler.Handle(request);

            Assert.False(_loginWasCreated);
            Assert.That((object) response.Status, Is.EqualTo(ResponseCodes.PasswordsDontMatch));
        }