public async Task AndUserDoesNotExist_NullIsReturnedAsync() { var loggerMock = Mock.Of <ILogger <AccountManagerService> >(); var clientFactoryMock = new Mock <IClientFactory>(); var clientMock = new Moq.Mock <ResourceAccess.ResourceAccessClient>(); var expectedResponse = new GetUserOnUserNameResponse { User = null }; var fakeCall = TestCalls.AsyncUnaryCall <GetUserOnUserNameResponse>(Task.FromResult(new GetUserOnUserNameResponse()), Task.FromResult(new Metadata()), () => Status.DefaultSuccess, () => new Metadata(), () => { }); clientMock.Setup(m => m.GetUserOnUserNameAsync(Moq.It.IsAny <GetUserOnUserNameRequest>(), null, null, CancellationToken.None)).Returns(fakeCall); clientFactoryMock.Setup(c => c.AccountResourceAccessClient()).Returns(clientMock.Object); var appConfig = Mock.Of <IOptions <AppSettings> >(); var service = new AccountManagerService(loggerMock, clientFactoryMock.Object, appConfig); AuthenticateResponse authResponse = await service.Authenticate(new AuthenticateRequest { HashedPassword = "******", IpAddress = "123", UserName = "******" }, null); Assert.True(string.IsNullOrEmpty(authResponse.JwtToken)); Assert.True(string.IsNullOrEmpty(authResponse.RefreshToken)); Assert.True(string.IsNullOrEmpty(authResponse.Role)); Assert.True(string.IsNullOrEmpty(authResponse.UserId)); Assert.True(string.IsNullOrEmpty(authResponse.UserName)); }
public async Task ToAuthenticateAndUserExist_TokenIsReturnedAsync() { var loggerMock = Mock.Of <ILogger <AccountManagerService> >(); var clientFactoryMock = new Mock <IClientFactory>(); var clientMock = new Moq.Mock <ResourceAccess.ResourceAccessClient>(); var expectedResponse = new GetUserOnUserNameResponse { User = new UserMessage { Firstname = "Firstname", Lastname = "Lastname", UserId = Guid.NewGuid().ToString(), Role = "User", UserName = "******", } }; var fakeCall = TestCalls.AsyncUnaryCall <GetUserOnUserNameResponse>(Task.FromResult(expectedResponse), Task.FromResult(new Metadata()), () => Status.DefaultSuccess, () => new Metadata(), () => { }); clientMock.Setup(m => m.GetUserOnUserNameAsync(Moq.It.IsAny <GetUserOnUserNameRequest>(), null, null, CancellationToken.None)).Returns(fakeCall); var expectedUpdateResponse = new UpdateUserResponse { User = new UserMessage { Firstname = "Firstname", Lastname = "Lastname", UserId = Guid.NewGuid().ToString(), Role = "User", UserName = "******" } }; expectedUpdateResponse.User.RefreshTokens.Add(new RefreshTokenMessage { CreatedByIp = "123", Token = "123123", }); var fakeUIpdateCall = TestCalls.AsyncUnaryCall <UpdateUserResponse>(Task.FromResult(expectedUpdateResponse), Task.FromResult(new Metadata()), () => Status.DefaultSuccess, () => new Metadata(), () => { }); clientMock.Setup(m => m.UpdateUserAsync(Moq.It.IsAny <UpdateUserRequest>(), null, null, CancellationToken.None)).Returns(fakeUIpdateCall); clientFactoryMock.Setup(c => c.AccountResourceAccessClient()).Returns(clientMock.Object); var testoption = Options.Create(new AppSettings { SecretString = "secretStuff!ddddddddddddddddddddddddddddddddddddddddddddddddddddddgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg" }); var service = new AccountManagerService(loggerMock, clientFactoryMock.Object, testoption); AuthenticateResponse authResponse = await service.Authenticate(new AuthenticateRequest { HashedPassword = "******", IpAddress = "123", UserName = "******" }, null); Assert.False(string.IsNullOrEmpty(authResponse.JwtToken)); Assert.False(string.IsNullOrEmpty(authResponse.RefreshToken)); Assert.False(string.IsNullOrEmpty(authResponse.Role)); Assert.False(string.IsNullOrEmpty(authResponse.UserId)); Assert.False(string.IsNullOrEmpty(authResponse.UserName)); }
public override async Task <GetUserOnUserNameResponse> GetUserOnUserName(GetUserOnUserNameRequest request, ServerCallContext context) { _logger.LogInformation("Getting user on username " + request.UserName); var currentUser = await Task.Run(() => { return(_accountResource.GetAllUsers().SingleOrDefault(u => u.Username == request.UserName)); }); if (currentUser != null) { if (sha256_hash(currentUser.Password) == sha256_hash(request.HashedPassword)) { var result = new GetUserOnUserNameResponse { User = new UserMessage { UserId = currentUser.Id.ToString(), Firstname = currentUser.Firstname, Lastname = currentUser.Lastname, Role = currentUser.Role, UserName = currentUser.Username, } }; foreach (var token in currentUser.RefreshTokens) { result.User.RefreshTokens.Add(new RefreshTokenMessage { Created = Google.Protobuf.WellKnownTypes.Timestamp.FromDateTime(token.Created), CreatedByIp = token.CreatedByIp, Expires = Google.Protobuf.WellKnownTypes.Timestamp.FromDateTime(token.Expires), Token = token.Token, Revoked = Google.Protobuf.WellKnownTypes.Timestamp.FromDateTime(token.Revoked ?? DateTime.MinValue), RevokedByIp = token.RevokedByIp, RevokedByToken = token.RevokedByIp }); } return(result); } } return(new GetUserOnUserNameResponse());; }