public async Task RegisterHttpPostSignInUserReturnsFailureTest()
        {
            var mockIUserStore             = new Mock <IUserStore <User> >();
            var mockIAuthenticationManager = new Mock <IAuthenticationManager>();

            var mockApplicationUserManager = new Mock <ApplicationUserManager>(mockIUserStore.Object);

            mockApplicationUserManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>()))
            .ReturnsAsync(default(User));
            mockApplicationUserManager.Setup(x => x.CreateAsync(It.IsAny <User>(), It.IsAny <string>()))
            .ReturnsAsync(IdentityResult.Success);

            var mockApplicationSignInManager = new Mock <ApplicationSignInManager>(mockApplicationUserManager.Object, mockIAuthenticationManager.Object);

            mockApplicationSignInManager.Setup(x => x.PasswordSignInAsync(It.IsAny <string>(),
                                                                          It.IsAny <string>(),
                                                                          It.IsAny <bool>(),
                                                                          It.IsAny <bool>()))
            .ReturnsAsync(SignInStatus.Failure);

            _accountController = new AccountController(mockApplicationUserManager.Object, mockApplicationSignInManager.Object, mockIAuthenticationManager.Object);

            var viewModel = new AccountRegisterViewModel()
            {
                Email           = "email",
                Password        = "******",
                ConfirmPassword = "******"
            };

            var result = await _accountController.Register(viewModel);

            Assert.IsInstanceOf <ViewResult>(result);
        }
Example #2
0
        public async Task <IActionResult> Register(AccountRegisterViewModel vm)
        {
            if (ModelState.IsValid)
            {
                IdentityUser user = new IdentityUser(vm.Username);
                user.Email = vm.Email;
                IdentityResult result = await _userManagerService.CreateAsync(user, vm.Password);

                if (result.Succeeded)
                {
                    await _userManagerService.AddToRoleAsync(user, "Customer");

                    Profile newProfile = new Profile {
                        Username = vm.Username,
                        Email    = vm.Email
                    };
                    _profileDataService.Create(newProfile);
                    return(RedirectToAction("Login", "Account"));
                }
                else
                {
                    foreach (var item in result.Errors)
                    {
                        ModelState.AddModelError("", item.Description);
                    }
                }
            }
            return(View(vm));
        }
Example #3
0
        public async Task <IActionResult> Register(AccountRegisterViewModel vm)
        {
            if (ModelState.IsValid)
            {
                IdentityUser user = new IdentityUser(vm.Email);
                user.Email = vm.Email;
                IdentityResult result = await _userManagerService.CreateAsync(user, vm.Password);

                if (result.Succeeded)
                {
                    await _userManagerService.AddToRoleAsync(user, "Customer");

                    //add a new profile
                    Profile newProfile = new Profile {
                        Email = vm.Email, FirstName = vm.FirstName, LastName = vm.LastName, DOB = vm.DOB, IsAdmin = false
                    };
                    _profileDataService.Create(newProfile);

                    return(RedirectToAction("Login", "Account"));
                }
                else
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }
            return(View(vm));
        }
        public void AccountController_Register_CreateCalledOnce()
        {
            //Arrange
            //чаще всего "мокаются" интерфейсы
            Mock <UserManager <CustomIdentityUser> >   userManager   = new Mock <UserManager <CustomIdentityUser> >(); // для успешного теста нужно добавить все зависимости в конструктор
            Mock <SignInManager <CustomIdentityUser> > signInManager = new Mock <SignInManager <CustomIdentityUser> >();

            AccountRegisterViewModel registerViewModel = new AccountRegisterViewModel
            {
                FisrtName       = "TestFisrtName",
                LastName        = "TestLastName",
                UserName        = "******",
                Email           = "*****@*****.**",
                Password        = "******",
                ConfirmPassword = "******"
            };

            CustomIdentityUser user = new CustomIdentityUser
            {
                FisrtName = registerViewModel.FisrtName,
                LastName  = registerViewModel.LastName,
                UserName  = registerViewModel.UserName,
                Email     = registerViewModel.Email
            };

            userManager.Setup(x => x.CreateAsync(user, registerViewModel.Password)).ReturnsAsync(IdentityResult.Success);

            AccountController controller = new AccountController(userManager.Object, signInManager.Object);

            //Act
            controller.Register(registerViewModel);

            //Assert
            userManager.Verify(x => x.CreateAsync(user, registerViewModel.Password), Times.Once);
        }
Example #5
0
        public async Task <IActionResult> Register(AccountRegisterViewModel vm)
        {
            if (ModelState.IsValid)
            {
                //add a new user
                IdentityUser user = new IdentityUser(vm.Email);
                user.Email = vm.Email;
                IdentityResult result =
                    await _userManagerService.CreateAsync(user, vm.Password);

                if (result.Succeeded)
                {
                    //go to Home/Index
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    //show errors
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }
            return(View(vm));
        }
        public async Task <IActionResult> Register(AccountRegisterViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var user = new RegisteredUser {
                    UserName = vm.Email, Email = vm.Email
                };
                var result = await userManager.CreateAsync(user, vm.Password);

                if (result.Succeeded)
                {
                    await signInManager.SignInAsync(user, false);

                    return(RedirectToAction("Registered", "Home"));
                }
                else
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }
            return(View(vm));
        }
        public IActionResult Register(AccountRegisterViewModel registerViewModel)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    FirstName = registerViewModel.FirstName,
                    LastName  = registerViewModel.LastName,
                    UserName  = registerViewModel.Email,
                    Email     = registerViewModel.Email
                };
                var createTask = _userManager.CreateAsync(user, registerViewModel.Password);

                if (createTask.Result.Succeeded)
                {
                    return(RedirectToAction("Index", "Home"));
                }

                foreach (var error in createTask.Result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }

            return(View());
        }
        public async Task <IActionResult> Register(AccountRegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new IdentityUser {
                    UserName = model.Email, Email = model.Email, EmailConfirmed = true
                };
                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await _signInManager.SignInAsync(user, false);

                    return(RedirectToAction("Index", "Admin"));
                }
                else
                {
                    string err = "";
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                        err += error.Description + "\n";
                    }
                    //return RedirectToAction("Register", "Account");
                    return(Content(err));
                }
            }
            else
            {
                //return RedirectToAction("Register", "Account");
                return(Content("not valid"));
            }
        }
        public IActionResult RegisterAdmin()
        {
            AccountRegisterViewModel vm = new AccountRegisterViewModel {
            };

            return(View(vm));
        }
Example #10
0
        public async Task <IActionResult> Register(AccountRegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new User()
                {
                    Email    = model.Email,
                    UserName = model.Email,
                    Address  = model.Address
                };
                var result = await userManager.CreateAsync(user : user, password : model.Passwork);

                if (result.Succeeded)
                {
                    await signInManager.SignInAsync(user : user, isPersistent : false);

                    return(RedirectToAction("Show", "Home"));
                }
                else
                {
                    foreach (var item in result.Errors)
                    {
                        ModelState.AddModelError("", item.Description);
                    }
                }
            }
            return(View(model));
        }
Example #11
0
        public IActionResult Register(AccountRegisterViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var user = new IdentityUser()
                {
                    Email = viewModel.Email, UserName = viewModel.Email
                };

                var createTask = _userManager.CreateAsync(user, viewModel.Password);

                if (createTask.Result.Succeeded)
                {
                    _signInManager.SignInAsync(user, false);

                    _messageService.SendMessage(viewModel.Email, "you're registered");

                    return(RedirectToAction("Index", "Human"));
                }

                foreach (var error in createTask.Result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }


            return(View());
        }
        public async Task RegisterHttpPostEmailIsInUseTest()
        {
            var mockIUserStore             = new Mock <IUserStore <User> >();
            var mockIAuthenticationManager = new Mock <IAuthenticationManager>();

            var mockApplicationUserManager = new Mock <ApplicationUserManager>(mockIUserStore.Object);

            mockApplicationUserManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>()))
            .ReturnsAsync(new User());

            var mockApplicationSignInManager = new Mock <ApplicationSignInManager>(mockApplicationUserManager.Object, mockIAuthenticationManager.Object);

            _accountController = new AccountController(mockApplicationUserManager.Object, mockApplicationSignInManager.Object, mockIAuthenticationManager.Object);

            var viewModel = new AccountRegisterViewModel()
            {
                Email           = "email",
                Password        = "******",
                ConfirmPassword = "******"
            };

            var result = await _accountController.Register(viewModel);

            Assert.IsInstanceOf <ViewResult>(result);
        }
        public async Task RegisterHttpPostValidViewModelTest()
        {
            var mockIUserStore             = new Mock <IUserStore <User> >();
            var mockIAuthenticationManager = new Mock <IAuthenticationManager>();

            var mockApplicationUserManager = new Mock <ApplicationUserManager>(mockIUserStore.Object);

            mockApplicationUserManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>()))
            .ReturnsAsync(default(User));
            mockApplicationUserManager.Setup(x => x.CreateAsync(It.IsAny <User>(), It.IsAny <string>()))
            .ReturnsAsync(IdentityResult.Success);

            var mockApplicationSignInManager = new Mock <ApplicationSignInManager>(mockApplicationUserManager.Object, mockIAuthenticationManager.Object);

            mockApplicationSignInManager.Setup(x => x.PasswordSignInAsync(It.IsAny <string>(),
                                                                          It.IsAny <string>(),
                                                                          It.IsAny <bool>(),
                                                                          It.IsAny <bool>()))
            .ReturnsAsync(SignInStatus.Success);

            _accountController = new AccountController(mockApplicationUserManager.Object, mockApplicationSignInManager.Object, mockIAuthenticationManager.Object);

            var viewModel = new AccountRegisterViewModel()
            {
                Email           = "email",
                Password        = "******",
                ConfirmPassword = "******"
            };

            var result = await _accountController.Register(viewModel) as RedirectToRouteResult;

            Assert.AreEqual("Index", (string)result?.RouteValues["action"]);
        }
        public void RegisterHttpPostSignInUserReturnsRequiresVerificationTest()
        {
            var mockIUserStore             = new Mock <IUserStore <User> >();
            var mockIAuthenticationManager = new Mock <IAuthenticationManager>();

            var mockApplicationUserManager = new Mock <ApplicationUserManager>(mockIUserStore.Object);

            mockApplicationUserManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>()))
            .ReturnsAsync(default(User));
            mockApplicationUserManager.Setup(x => x.CreateAsync(It.IsAny <User>(), It.IsAny <string>()))
            .ReturnsAsync(IdentityResult.Success);

            var mockApplicationSignInManager = new Mock <ApplicationSignInManager>(mockApplicationUserManager.Object, mockIAuthenticationManager.Object);

            mockApplicationSignInManager.Setup(x => x.PasswordSignInAsync(It.IsAny <string>(),
                                                                          It.IsAny <string>(),
                                                                          It.IsAny <bool>(),
                                                                          It.IsAny <bool>()))
            .ReturnsAsync(SignInStatus.RequiresVerification);

            _accountController = new AccountController(mockApplicationUserManager.Object, mockApplicationSignInManager.Object, mockIAuthenticationManager.Object);

            var viewModel = new AccountRegisterViewModel()
            {
                Email           = "email",
                Password        = "******",
                ConfirmPassword = "******"
            };

            Assert.ThrowsAsync <NotImplementedException>(async() => await _accountController.Register(viewModel));
        }
Example #15
0
        public ActionResult Register(AccountRegisterViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var user = new User()
                {
                    Username  = viewModel.Username,
                    FirstName = viewModel.FirstName,
                    LastName  = viewModel.LastName
                };

                var success = _repo.Add(user, viewModel.Password);
                if (success)
                {
                    FormsAuthentication.SetAuthCookie(user.Username, false);
                    return(RedirectToAction("Index", "Bench"));
                }
                else
                {
                    ModelState.AddModelError("", "Unable to register user");
                }
            }

            return(View(viewModel));
        }
        public async Task <IActionResult> SignUp(AccountRegisterViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    Email          = vm.Email,
                    UserName       = vm.Email,
                    Firstname      = vm.Firstname,
                    Lastname       = vm.Lastname,
                    PhotoPath      = "no-photo.png",
                    RegisteredDate = DateTime.Now
                };

                var result = await this._userManager.CreateAsync(user, vm.Password);

                if (result.Succeeded)
                {
                    await this._signInManager.SignInAsync(user, isPersistent : false);

                    return(RedirectToAction("Index", "Home"));
                }

                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }
            return(View(vm));
        }
Example #17
0
        public async Task <IActionResult> Register(AccountRegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new IdentityUser
                {
                    UserName = model.RegisterViewModel.Email,
                    Email    = model.RegisterViewModel.Email
                };
                var result = await _userManager.CreateAsync(user, model.RegisterViewModel.Password);

                if (result.Succeeded)
                {
                    await _signInManager.SignInAsync(user, false);

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    return(RedirectToAction("Index", "Account"));
                }
            }
            else
            {
                return(RedirectToAction("Index", "Account"));
            }
        }
Example #18
0
        public async Task SignupAsync(string username, string password)
        {
            var signupModel = new AccountRegisterViewModel
            {
                Username        = username,
                Password        = password,
                Email           = "*****@*****.**",
                ConfirmPassword = password
            };

            await this.PostEnsureStatusAsync(
                "/Account/Register",
                signupModel.ToFormEncodedContent(),
                HttpStatusCode.Redirect,
                new Regex(@"/Account/Login\?confirmEmail=true", RegexOptions.IgnoreCase)
                );

            // Forcefully confirm email.
            var userManager = this._server.Services.GetRequiredService <UserManager <ApplicationUser> >();
            var user        = await userManager.FindByNameAsync(username);

            var token = await userManager.GenerateEmailConfirmationTokenAsync(user);

            var result = await userManager.ConfirmEmailAsync(user, token);

            Assert.True(result.Succeeded);

            // Log in
            await this.LoginAsync(username, password);
        }
Example #19
0
        public async Task <IActionResult> Register(AccountRegisterViewModel m)
        {
            if (!ModelState.IsValid)
            {
                return(View(m));
            }

            var username = m.Username.Trim().ToLower();

            var user = new BlogUser
            {
                UserId   = Guid.NewGuid().ToString(),
                Username = username
            };

            try
            {
                await _blogDbService.CreateUserAsync(user);

                m.Message = $"User has been created.";
            }
            catch (CosmosException ex) when(ex.StatusCode == HttpStatusCode.Conflict)
            {
                //item already existed.  Optimize for the success path.
                ModelState.AddModelError("", $"User with the username {username} already exists.");
            }


            return(View(m));
        }
Example #20
0
        //[Authorize(Roles = "Administrator")]
        public async Task <IActionResult> RegisterAsync(AccountRegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new User {
                    FullName = model.FullName, Email = model.Email, Tel = model.Tel, UserName = model.Email
                };

                var result = await userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await userManager.AddToRoleAsync(user, model.Role);

                    TempData["StatusMessage"] = "New account created successfully";
                    return(RedirectToAction("Register"));
                }
                else
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                    model.UserRoles = GetRolesDropdown();
                }
            }
            return(View(model));
        }
Example #21
0
        public IActionResult Register(AccountRegisterViewModel registerViewModel)
        {
            if (ModelState.IsValid)
            {
                CustomIdentityUser user = new CustomIdentityUser
                {
                    FisrtName = registerViewModel.FisrtName,
                    LastName  = registerViewModel.LastName,
                    UserName  = registerViewModel.UserName,
                    Email     = registerViewModel.Email
                };

                var createTask = _userManager.CreateAsync(user, registerViewModel.Password);

                if (createTask.Result.Succeeded)
                {
                    _messageSender.SendMessage(email: registerViewModel.Email,
                                               nameTo: registerViewModel.FisrtName,
                                               messageText: "You have been registered on the site FootballShow");
                    return(RedirectToRoute(new { controller = "Home", action = "Index" }));
                }

                foreach (var error in createTask.Result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }

            return(View());
        }
        public ActionResult Login(string username, string password)
        {
            string result = accountService.CheckLogin(username, password);

            if (result == null)
            {
                //login k thành công
                var viewModel = new AccountRegisterViewModel
                {
                    InvalidLogin = "******"
                };
                return(View("~/Views/Home/login.cshtml", viewModel));
            }
            Session["CURRENT_USER_ID"] = result;

            //merge cart if user
            int roleId = Convert.ToInt32(Session.GetCurrentUserInfo("RoleId"));

            if (roleId == 2)
            {
                bool resultMerge = shoppingService.MergeCartSessionAnddDDB(Session.GetCurrentUserInfo("Username"));
                if (resultMerge) //done => remove cart in session
                {
                    Session["CART"] = null;
                }
            }
            return(Redirect(Request.UrlReferrer.ToString()));
        }
 public IActionResult Register([FromQuery] MessageType messageType, AccountRegisterViewModel account)
 {
     //Inserted user account
     //User: [email protected]
     //Pass: Z123456z*
     if (ModelState.IsValid)
     {
         var user = new IdentityUser()
         {
             Email    = account.Email,
             UserName = account.Email,
         };
         Task <IdentityResult> task = _userManager.CreateAsync(user, account.Password);
         if (task.Result.Succeeded)
         {
             _signInManager.SignInAsync(user, false);
             MessageService.SendMessage(account.Email, messageType);
             return(RedirectToAction("Index", "Human"));
         }
         task.Result
         .Errors
         .ToList()
         .ForEach(x => ModelState.AddModelError(x.Code, x.Description));
     }
     return(View());
 }
Example #24
0
        public async Task <IActionResult> Create([FromBody] AccountRegisterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.Values.SelectMany(v => v.Errors).Select(modelError => modelError.ErrorMessage).ToList()));
            }

            var user = new ApplicationUser {
                UserName = model.Email, Email = model.Email
            };

            var result = await _userManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(BadRequest(result.Errors.Select(x => x.Description).ToList()));
            }

            var adminRole = await _roleManager.FindByNameAsync("Admin");

            if (adminRole == null)
            {
                adminRole = new IdentityRole("Admin");
                await _roleManager.CreateAsync(adminRole);

                await _roleManager.AddClaimAsync(adminRole, new Claim("ListenThen", "Get"));
            }

            if (!await _userManager.IsInRoleAsync(user, adminRole.Name))
            {
                await _userManager.AddToRoleAsync(user, adminRole.Name);
            }

            return(Ok());
        }
        public async Task <ActionResult> Register(AccountRegisterViewModel viewModel)
        {
            // If the ModelState is valid...
            if (ModelState.IsValid)
            {
                // Instantiate a User object
                var user = new User()
                {
                    UserName = viewModel.Email, Email = viewModel.Email
                };

                // Create the user
                var result = await _userManager.CreateAsync(user, viewModel.Password);

                // If the user was successfully created...
                if (result.Succeeded)
                {
                    await _signInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // Sign-in the user and redirect them to the web app's Home page
                    return(RedirectToAction("Index", "Entries"));
                }

                // If there were errors...
                foreach (var error in result.Errors)
                {
                    // Add model errors
                    ModelState.AddModelError("", error);
                }
            }

            return(View(viewModel));
        }
        public async Task <IActionResult> Register(AccountRegisterViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName = vm.Email,
                    Email    = vm.Email
                };
                // adds a new user with the password to the database
                var result = await userManager.CreateAsync(user, vm.Password);

                if (result.Succeeded)
                {
                    // signs in new user without using persistent cookie. When
                    // browser is closed, user is auto-logged out.
                    await signInManager.SignInAsync(user, false);

                    // forwards newly registered user to Index
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }
            return(View(vm));
        }
Example #27
0
        public IActionResult Register(AccountRegisterViewModel viewModel, [FromServices] IMessageSender messageSender)
        {
            if (ModelState.IsValid)
            {
                var user = new User
                {
                    UserName  = viewModel.Email,
                    Email     = viewModel.Email,
                    FirstName = viewModel.FirstName,
                    LastName  = viewModel.LastName
                };

                var createTask = _userManager.CreateAsync(user, viewModel.Password);

                if (createTask.Result.Succeeded)
                {
                    // Send an email with this link
                    string code = _userManager.GenerateEmailConfirmationTokenAsync(user).Result;
                    var    emailConfirmationUrl = Url.Action(nameof(ConfirmEmail), "Account",
                                                             new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme);

                    messageSender.SendConfirmationMessage(user, emailConfirmationUrl);
                    return(RedirectToAction(nameof(SuccessRegistration)));
                }

                foreach (var error in createTask.Result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }

            return(View());
        }
Example #28
0
        public async Task <ActionResult> Index(AccountRegisterViewModel viewModel)
        {
            //If the ModelState is valid...
            if (ModelState.IsValid)
            {
                //Instantiate a UserLogin object
                var user = new UserLogin {
                    UserName = viewModel.Username
                };
                //Create the user
                var result = await _userManager.CreateAsync(user, viewModel.Password);

                //If the user was successfuly created...
                if (result.Succeeded)
                {
                    return(RedirectToAction("Index", "Account"));
                }
                //If there were errors...
                //Add model errors
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error);
                }
            }

            return(View(viewModel));
        }
Example #29
0
        public IActionResult Register(AccountRegisterViewModel registerViewModel)
        {
            if (ModelState.IsValid)
            {
                CustomIdentityUser user = new CustomIdentityUser
                {
                    FisrtName = registerViewModel.FisrtName,
                    LastName  = registerViewModel.LastName,
                    UserName  = registerViewModel.UserName,
                    Email     = registerViewModel.Email
                };

                var createTask = _userManager.CreateAsync(user, registerViewModel.Password);

                if (createTask.Result.Succeeded)
                {
                    return(RedirectToRoute(new { controller = "Home", action = "Index" }));
                }

                foreach (var error in createTask.Result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }

            return(View());
        }
Example #30
0
        public void AccountController_Register_CreateCalledOnce()
        {
            //Arrange
            Mock <UserManager <ApplicationUser> >   userManager   = new Mock <UserManager <ApplicationUser> >();//Нужно добавить все зависимости в конструктор
            Mock <SignInManager <ApplicationUser> > signInManager = new Mock <SignInManager <ApplicationUser> >();

            var registerViewModel = new AccountRegisterViewModel
            {
                FirstName       = "TestFirstName",
                LastName        = "TestLastName",
                Email           = "*****@*****.**",
                Password        = "******",
                ConfirmPassword = "******"
            };

            var user = new ApplicationUser
            {
                FirstName = registerViewModel.FirstName,
                LastName  = registerViewModel.LastName,
                UserName  = registerViewModel.Email,
                Email     = registerViewModel.Email
            };

            userManager.Setup(x => x.CreateAsync(user, registerViewModel.Password)).ReturnsAsync(IdentityResult.Success);

            AccountController controller = new AccountController(userManager.Object, signInManager.Object);

            //Act
            controller.Register(registerViewModel);

            //Assert
            userManager.Verify(x => x.CreateAsync(user, registerViewModel.Password), Times.Once);
        }