public void Register_ErrorWhileRegisteringCausesFormToBeRedisplayed() { string userName = "******"; string password = "******"; WebSecurity.Setup(s => s.CreateUserAndAccount(userName, password, null, false)).Returns(userName); WebSecurity.Setup(s => s.Login(userName, password, false)).Throws( new MembershipCreateUserException(MembershipCreateStatus.InvalidEmail)); var model = new RegisterModel { UserName = userName, Password = password, ConfirmPassword = password }; var result = Controller.Register(model) as ViewResult; Assert.IsNotNull(result); Assert.IsFalse(Controller.ModelState.IsValid); }
public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { // Attempt to register the user try { WebSecurity.CreateUserAndAccount(model.UserName, model.Password); WebSecurity.Login(model.UserName, model.Password); UserRepository ui = new UserRepository(); ui.Add(new User() { UserName = model.UserName, UserProfileId = WebSecurity.GetUserId(model.UserName), JoinDate = System.DateTime.Now }); ui.Save(); var username = model.UserName; System.Web.Security.Roles.AddUserToRole(username, "User"); return RedirectToAction("Index", "Home"); } catch (MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); } } // If we got this far, something failed, redisplay form return View(model); }