public async Task UserTriesToLogIn_UnexpectedErrorInValidation_InvalidOperationIsThrown() { var sessionsServiceClient = new Mock <ISessionsServiceClient>(); var credentialsClient = new Mock <ICredentialsClient>(); var adminUsersService = new Mock <IAdminUserService>(); var response = new AdminCredentialsValidationResponse { Error = CredentialsError.LoginAlreadyExists }; var adminUsersServiceResponse = GetAdminUserResult(); credentialsClient .Setup(x => x.Admins.ValidateAsync(It.IsAny <CredentialsValidationRequest>())) .ReturnsAsync(response); adminUsersService .Setup(x => x.GetByEmailAsync(It.IsAny <string>(), null)) .ReturnsAsync(adminUsersServiceResponse); AuthService authService; using (var logFactory = LogFactory.Create().AddUnbufferedConsole()) { authService = new AuthService( sessionsServiceClient.Object, credentialsClient.Object, adminUsersService.Object, logFactory); } await Assert.ThrowsAsync <InvalidOperationException>(() => authService.AuthAsync("email", "password")); }
public async Task UserTriesToLogIn_WithValidCredentials_SuccessfullyAuthenticated() { var sessionsServiceClient = new Mock <ISessionsServiceClient>(); var credentialsClient = new Mock <ICredentialsClient>(); var adminUsersService = new Mock <IAdminUserService>(); var credentialsResponse = new AdminCredentialsValidationResponse { AdminId = "1" }; var adminUsersServiceResponse = new AdminUserResult { Error = AdminUserErrorCodes.None, Profile = new AdminUser { IsActive = true } }; credentialsClient .Setup(x => x.Admins.ValidateAsync(It.IsAny <CredentialsValidationRequest>())) .ReturnsAsync(credentialsResponse); var sessionResponse = new ClientSession { SessionToken = "token" }; sessionsServiceClient .Setup(x => x.SessionsApi.AuthenticateAsync(credentialsResponse.AdminId, It.IsNotNull <CreateSessionRequest>())) .ReturnsAsync(sessionResponse); adminUsersService .Setup(x => x.GetByEmailAsync(It.IsAny <string>(), null)) .ReturnsAsync(adminUsersServiceResponse); AuthService authService; using (var logFactory = LogFactory.Create().AddUnbufferedConsole()) { authService = new AuthService( sessionsServiceClient.Object, credentialsClient.Object, adminUsersService.Object, logFactory); } var result = await authService.AuthAsync("email", "password"); Assert.Equal(credentialsResponse.AdminId, result.CustomerId); Assert.Equal(sessionResponse.SessionToken, result.Token); Assert.Equal(ServicesError.None, result.Error); }
public async Task UserTriesToLogIn_WithWrongPassword_PasswordMismatchErrorReturned() { var sessionsServiceClient = new Mock <ISessionsServiceClient>(); var credentialsClient = new Mock <ICredentialsClient>(); var adminUsersService = new Mock <IAdminUserService>(); var response = new AdminCredentialsValidationResponse { Error = CredentialsError.PasswordMismatch }; var adminUsersServiceResponse = new AdminUserResult { Error = AdminUserErrorCodes.None, Profile = new AdminUser { IsActive = true } }; credentialsClient .Setup(x => x.Admins.ValidateAsync(It.IsAny <CredentialsValidationRequest>())) .ReturnsAsync(response); adminUsersService .Setup(x => x.GetByEmailAsync(It.IsAny <string>(), null)) .ReturnsAsync(adminUsersServiceResponse); AuthService authService; using (var logFactory = LogFactory.Create().AddUnbufferedConsole()) { authService = new AuthService( sessionsServiceClient.Object, credentialsClient.Object, adminUsersService.Object, logFactory); } var result = await authService.AuthAsync("email", "password"); Assert.Equal(response.Error.ToString(), result.Error.ToString()); Assert.Null(result.CustomerId); Assert.Null(result.Token); }