コード例 #1
0
        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"]);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }