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)); } }); }
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); }
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)); }