public ActionResult Register(AccountRegisterModel model) { if (ModelState.IsValid) { model.Email = model.Email.ToLower().Trim(); var errorMessage = _membershipService.CreateUser(model.Email, model.Password); if (string.IsNullOrEmpty(errorMessage)) { _formsService.SignIn(model.Email, false); var user = _repository.Find<UserProfile>().GetBy(model.Email); user.CompleteRegistration(model.Name, false); _repository.Save(user); return RedirectTo<AccountController>(c => c.Show(user.Id, user.UrlName)); } ModelState.AddModelError("", errorMessage); } return View(model); }
public void Register_Post_ReturnsViewIfModelStateIsInvalid() { // Arrange var model = new AccountRegisterModel { Email = "*****@*****.**", Password = "******", ConfirmPassword = "******" }; _accountController.ModelState.AddModelError("", "Dummy error message."); // Act ActionResult result = _accountController.Register(model); // Assert Assert.IsInstanceOfType(result, typeof(ViewResult)); var viewResult = (ViewResult)result; Assert.AreEqual(model, viewResult.ViewData.Model); }
public void Register_Post_ReturnsViewIfRegistrationFails() { // Arrange var model = new AccountRegisterModel { Email = "*****@*****.**", Password = "******", ConfirmPassword = "******" }; // Act ActionResult result = _accountController.Register(model); // Assert Assert.IsInstanceOfType(result, typeof(ViewResult)); var viewResult = (ViewResult)result; Assert.AreEqual(model, viewResult.ViewData.Model); Assert.AreEqual("Email already exists. Please enter a different email address.", _accountController.ModelState[""].Errors[0].ErrorMessage); }
public void Register_Post_ReturnsRedirectOnSuccess() { // Arrange _repository.Save(new UserProfile {Id = 1, Email = "*****@*****.**"}); var model = new AccountRegisterModel { Email = "*****@*****.**", Password = "******", ConfirmPassword = "******", }; // Act ActionResult result = _accountController.Register(model); // Assert Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult)); var redirectResult = (RedirectToRouteResult)result; Assert.AreEqual("Show", redirectResult.RouteValues["action"]); }