Exemplo n.º 1
0
        public void GetUserByToken_DeveInvalidarTokenMaisAntigo()
        {
            /// arrange
            var user = new UserCredentials
            {
                Email    = "foo",
                Password = "******"
            };
            var token = new UserToken
            {
                IsValid    = true,
                CreateDate = DateTime.Now,
                Token      = "g45d-123",
                UserId     = 1,
                Email      = user.Email
            };
            var userRepositoryMock = new Mock <IUserTokenRepository>();

            userRepositoryMock.Setup(e => e.SearchByTokenAsync(token.Token)).Returns(Task.FromResult(token));
            userRepositoryMock.Setup(e => e.SearchAsync(user.Email)).Returns(Task.FromResult(user));
            IEnumerable <UserToken> searchTokensByLoginAsyncResult = new List <UserToken>()
            {
                token
            };

            userRepositoryMock.Setup(e => e.SearchTokensByLoginAsync(user.Email)).Returns(Task.FromResult(searchTokensByLoginAsyncResult));
            var securityMock = new Mock <ISecurityHelper>();

            securityMock.Setup(e => e.SHA256(user.Password)).Returns(user.Password);
            securityMock.Setup(e => e.GenerateUniqueToken(It.IsAny <DateTime?>())).Returns(Guid.NewGuid().ToString());

            IAuthService authService = new AuthService(userRepositoryMock.Object, securityMock.Object);

            IResponseEnvelope <UserToken> firstTokenResult  = authService.AuthenticateAsync(user.Email, user.Password).Result;
            IResponseEnvelope <UserToken> secondTokenResult = authService.AuthenticateAsync(user.Email, user.Password).Result;

            /// act
            Task.Run(async() =>
            {
                try
                {
                    await authService.SearchByTokenAsync(firstTokenResult.Content.Token);
                }
                catch (Exception ex)
                {
                    Assert.IsInstanceOfType(ex, typeof(UnauthorizedAccessException));
                }
            });
        }
Exemplo n.º 2
0
        public void GetUserByToken_DeveRetornarUsuarioComTokenAssociado()
        {
            /// arrange
            var user = new UserCredentials
            {
                Email    = "foo",
                Password = "******"
            };
            var token = new UserToken
            {
                IsValid    = true,
                CreateDate = DateTime.Now,
                Token      = "g45d-123",
                UserId     = 1,
                Email      = user.Email
            };
            var userRepositoryMock = new Mock <IUserTokenRepository>();

            userRepositoryMock.Setup(e => e.SearchByTokenAsync(token.Token)).Returns(Task.FromResult(token));
            IEnumerable <UserToken> searchTokensByLoginAsyncResult = new List <UserToken>()
            {
                token
            };

            userRepositoryMock.Setup(e => e.SearchTokensByLoginAsync(user.Email)).Returns(Task.FromResult(searchTokensByLoginAsyncResult));
            var securityMock = new Mock <ISecurityHelper>();

            securityMock.Setup(e => e.SHA256(user.Password)).Returns(user.Password);
            securityMock.Setup(e => e.GenerateUniqueToken(It.IsAny <DateTime?>())).Returns(Guid.NewGuid().ToString());

            IAuthService authService = new AuthService(userRepositoryMock.Object, securityMock.Object);
            /// act
            IResponseEnvelope <UserToken> tokenResult = authService.SearchByTokenAsync(token.Token).Result;

            /// assert
            Assert.IsNotNull(tokenResult);
            Assert.IsTrue(tokenResult.Content.Email == user.Email);
        }
Exemplo n.º 3
0
        public void DoLogin_RealizarLoginComSucesso()
        {
            /// arrange
            var user = new UserCredentials
            {
                Email    = "joao",
                Password = "******"
            };
            var userRepositoryMock = new Mock <IUserTokenRepository>();

            userRepositoryMock.Setup(e => e.SearchAsync(It.IsAny <string>())).Returns(Task.Run(() => user));
            var securityMock = new Mock <ISecurityHelper>();

            securityMock.Setup(e => e.SHA256(user.Password)).Returns(user.Password);
            securityMock.Setup(e => e.GenerateUniqueToken(It.IsAny <DateTime?>())).Returns(Guid.NewGuid().ToString());

            IAuthService authService = new AuthService(userRepositoryMock.Object, securityMock.Object);
            /// act
            IResponseEnvelope <UserToken> resultado = authService.AuthenticateAsync(user.Email, user.Password).Result;

            /// assert
            Assert.IsNotNull(resultado);
            Assert.IsFalse(string.IsNullOrWhiteSpace(resultado.Content.Token));
        }