Exemple #1
0
        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));
        }
Exemple #2
0
        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");
        }
Exemple #3
0
        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 = "*****@*****.**",
            });
        }