public void LoginTest() { var model = new RegisterApiResource() { Email = "1234", FirstName = "*****@*****.**", LastName = "", Password = "******", ConfirmPassword = "" }; var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName }; //var mockUserManager = new Mock<UserManager<ApplicationUser>>(); //mockUserManager.Setup(p => p.CreateAsync(user, model.Password).Result.Succeeded); //var controler = new AccountController(mockUserManager.Object); Assert.Equal(true, user.EmailConfirmed); //var mockManageUsers = new Mock<IManager>(); //// Note: Pulling fake user data from private methods down below //mockManageUsers.Setup(p => p.GetUsers()).Returns(GetUsersListTestData()); //var controller = new AccountController(mockManageUsers.Object); //var result = controller.Login.Index(); //var viewResult = Assert.IsType<ViewResult>(result); //ViewDataDictionary viewData = viewResult.ViewData; //Assert.NotNull(viewData["userList"]); }
public void DeberarregistrarNuevoUsuarioPost() { //Arrange Setup(); var context = new DefaultHttpContext(); var mockWrappers = new Mock <IAccountControllerWrappers>(); var mockTempData = new TempDataDictionary(context, Mock.Of <ITempDataProvider>()) { ["Information"] = "" }; var viewModel = new RegisterApiResource { Email = "*****@*****.**", Password = "******", ConfirmPassword = "******" }; var mockConfiguration = new Mock <IConfiguration>(); var mockEmailSender = new Mock <IEmailSender>(); mockConfiguration.Setup(x => x["EnableRegistration"]).Returns("true"); mockWrappers.Setup(x => x.GetActionLink(It.IsAny <IUrlHelper>(), It.IsAny <string>(), It.IsAny <ApplicationUser>(), It.IsAny <string>())) .Returns("test"); mockWrappers.Setup(x => x.IsLocalUrl(It.IsAny <IUrlHelper>(), It.IsAny <string>())).Returns(true); _mockUserManager.Setup(x => x.CreateAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>())) .ReturnsAsync(IdentityResult.Success); _mockUserManager.Setup(x => x.GenerateEmailConfirmationTokenAsync(It.IsAny <ApplicationUser>())).ReturnsAsync("123456"); mockEmailSender.Setup(x => x.SendEmailAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())); var accountController = new AccountController(_mockUserManager.Object, null, _mockLogger.Object, mockEmailSender.Object, mockConfiguration.Object) { ControllerContext = { HttpContext = context }, Wrappers = mockWrappers.Object, TempData = mockTempData }; //Act var response = accountController.Register(viewModel).Result; //Assert _mockUserManager.Verify(x => x.CreateAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>()), Times.Once); _mockUserManager.Verify(x => x.GenerateEmailConfirmationTokenAsync(It.IsAny <ApplicationUser>()), Times.Once); mockEmailSender.Verify(x => x.SendEmailAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Once); Assert.IsType <OkObjectResult>(response); }
private IdentityUser GetUserTestData() { var model = new RegisterApiResource() { Email = "1234", FirstName = "*****@*****.**", LastName = "", Password = "", ConfirmPassword = "" }; var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName }; return(user); }
public async Task <IActionResult> Register([FromBody] RegisterApiResource model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { _logger.LogWarning("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Wrappers.GetActionLink(Url, nameof(ConfirmEmail), user, code); await _emailSender.SendEmailAsync(model.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); var userApi = new AccountApiModel { Id = user.Id, FirstName = user.FirstName, LastName = user.LastName, Email = user.Email }; return(Ok(new { userApi, Success = new { Message = "User created." } })); } AddErrors(result); return(BadRequest(new { Error = new { Message = "Something went wrong." }, result })); } return(BadRequest(ModelState)); }
public async Task <IActionResult> Register([FromBody] RegisterApiResource model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { await _signInManager.SignInAsync(user, isPersistent : false); return(Ok(user)); } AddErrors(result); } return(BadRequest(ModelState)); }