public void AutenticarUsuario_UsuarioBLoqueado_RetornaUsuarioBloqueado()
        {
            //Arrange
            var repositorioConsultaUsuario = new Mock <IRepositorioConsultaUsuario>();

            repositorioConsultaUsuario.Setup(
                x => x.ObtenerPorNombre(It.IsAny <string>())).Returns(new Usuario
            {
                Contrasena = "123",
                Bloqueado  = true
            });

            var criptografia = new CriptografiaAes();

            //Act
            var servicioAutenticacion = new ServicioAutenticacion(repositorioConsultaUsuario.Object, criptografia);
            var resultado             = servicioAutenticacion.AutenticarUsuario(new Credencial {
                Contrasena = "123"
            });

            //Assert
            Assert.IsFalse(resultado.Autenticado);
            Assert.AreEqual(ErrorAutenticacion.UsuarioBloqueado, resultado.Respuesta);
            Assert.IsNull(resultado.Usuario);
        }
        public void AutenticarUsuario_ContrasenaExpiro_RetornaContrasenaExpiro()
        {
            //Arrange
            var repositorioConsultaUsuario = new Mock <IRepositorioConsultaUsuario>();

            repositorioConsultaUsuario.Setup(
                x => x.ObtenerPorNombre(It.IsAny <string>())).Returns(new Usuario
            {
                Contrasena = "123",
                Bloqueado  = false,
                FechaUltimoCambioContrasena = DateTime.Now.AddDays(-30)
            });

            var criptografia = new CriptografiaAes();

            //Act
            var servicioAutenticacion = new ServicioAutenticacion(repositorioConsultaUsuario.Object, criptografia);
            var resultado             = servicioAutenticacion.AutenticarUsuario(new Credencial {
                Contrasena = "123"
            });

            //Assert
            Assert.IsFalse(resultado.Autenticado);
            Assert.AreEqual(ErrorAutenticacion.ContrasenaExpiro, resultado.Respuesta);
            Assert.IsNull(resultado.Usuario);
        }
        public void AutenticarUsuario_UsuarioNoExiste_RetornaCredencialesIncorrectas()
        {
            //Arrange
            var repositorioConsultaUsuario = new Mock <IRepositorioConsultaUsuario>();

            repositorioConsultaUsuario.Setup(x => x.ObtenerPorNombre(It.IsAny <string>())).Returns((Usuario)null);

            var criptografia = new CriptografiaAes();


            //Act
            var servicioAutenticacion = new ServicioAutenticacion(repositorioConsultaUsuario.Object, criptografia);
            var resultado             = servicioAutenticacion.AutenticarUsuario(new Credencial {
                Usuario = string.Empty
            });

            //Assert
            Assert.IsFalse(resultado.Autenticado);
            Assert.AreEqual(ErrorAutenticacion.CredencialesIncorrectas, resultado.Respuesta);
            Assert.IsNull(resultado.Usuario);
        }