public async Task <IActionResult> Login(CredenciaisDoUsuario credenciais) { if (ModelState.IsValid && _servicoDeLogin.Validar(credenciais)) { var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme); identity.AddClaim(new Claim("email", credenciais.Email)); identity.AddClaim(new Claim(ClaimTypes.Email, credenciais.Email)); identity.AddClaim(new Claim(ClaimTypes.Name, credenciais.Email)); await HttpContext .SignInAsync( CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity)); return(RedirectToAction("Index", "Principal")); } return(View("Index", credenciais)); }
public async void DeveRedirecionarATelaPrincipal() { var servicoDeLogin = new Moq.Mock <IServicoDeLogin>(); var credenciaisValidas = new CredenciaisDoUsuario { Email = "*****@*****.**", Senha = "123456" }; servicoDeLogin.Setup(s => s.Validar(credenciaisValidas)).Returns(true); var homeController = new HomeController(servicoDeLogin.Object); homeController.SetTestContext(); var result = await homeController.Login(credenciaisValidas) as RedirectResult; result.Should().NotBeNull(); result.Url.Should().Contain("Principal"); }
public async void DeveRerenderizarNaoLogar() { var servicoDeLogin = new Moq.Mock <IServicoDeLogin>(); var credenciaisIncompletas = new CredenciaisDoUsuario { Email = "*****@*****.**", }; servicoDeLogin.Setup(s => s.Validar(credenciaisIncompletas)).Returns(false); var homeController = new HomeController(servicoDeLogin.Object); homeController.SetTestContext(); homeController.ModelState.AddModelError("Senha", "nenhuma senha digitada"); var result = await homeController.Login(credenciaisIncompletas) as ViewResult; result.Should().NotBeNull(); result.ViewName.Should().Be("Index"); result.Model.Should().BeEquivalentTo(new CredenciaisDoUsuario { Email = "*****@*****.**", }); }