public async Task CreateUserTests_AttemptToChangeThPasswordBySupplingCorrectOldPassword_ChangeIsSuccessfull() { Logic.Providers.UserProvider provider = new Logic.Providers.UserProvider(); await undoChanges(); var userEntity = new Logic.DBModels.UserEntity() { id = Guid.NewGuid().ToString(), is_deleted = false, is_confirmed = true, is_locked_out = false, user_email = "*****@*****.**", modified_on = DateTime.UtcNow, num_of_failed_password_attempt = 0 }; var result = await provider.CreateUser(studentConnectionUtility, userEntity, "testpassword"); Assert.IsTrue(result.Success); Guid guid; Assert.IsTrue(Guid.TryParse(result.UserId, out guid)); var changePasswordResult = await provider.ChangePassword(studentConnectionUtility, result.UserId, "testpassword", "testpassword_2"); Assert.IsTrue(changePasswordResult); Assert.Pass(); }
public async Task <bool> Logout(Logic.Models.LogoutRequest request) { if (request == null || request.SessionToken == null || string.IsNullOrEmpty(request.SessionToken)) { return(false); } Logic.Providers.UserProvider provider = new Logic.Providers.UserProvider(); return(await provider.Logout(_connectionUtility, request.SessionToken)); }
public async Task <Logic.ViewModels.AuthenticateResultVM> InitiateLogin(Logic.Models.LoginRequest request) { if (request == null || string.IsNullOrEmpty(request.Email) || string.IsNullOrEmpty(request.Password)) { return(new Logic.ViewModels.AuthenticateResultVM()); } Logic.Providers.UserProvider provider = new Logic.Providers.UserProvider(); var result = await provider.Login(_connectionUtility, request.Email, request.Password, new Logic.Models.LoginSessionProvider()); if (result.ResultType == Logic.Enums.AuthenticateResultType.Success) { _sessionCacneProvider.AddSessionModel(result.Session); } return(result); }
public async Task CreateUserTests_AttempLoginAndWaitForAutomaticLogOut_LogOutHappensSuccessfully() { Logic.Providers.UserProvider provider = new Logic.Providers.UserProvider(); await undoChanges(); var userEntity = new Logic.DBModels.UserEntity() { id = Guid.NewGuid().ToString(), is_deleted = false, is_confirmed = true, is_locked_out = false, user_email = "*****@*****.**", modified_on = DateTime.UtcNow, num_of_failed_password_attempt = 0 }; var result = await provider.CreateUser(studentConnectionUtility, userEntity, "testpassword"); Assert.IsTrue(result.Success); Guid guid; Assert.IsTrue(Guid.TryParse(result.UserId, out guid)); var testTokenProvider = new TestLoginTokenProvider(); var loginResult = await provider.Login(studentConnectionUtility, "*****@*****.**", "testpassword", testTokenProvider, 15); Assert.IsTrue(loginResult.ResultType == Logic.Enums.AuthenticateResultType.Success); Assert.IsTrue(!string.IsNullOrEmpty(loginResult.Session.SessionToken)); var sessionValid = await provider.IsSessionValid(studentConnectionUtility, loginResult.Session.SessionToken, loginResult.Session.UserId); Assert.IsTrue(sessionValid.IsValid); await Task.Delay(16000); sessionValid = await provider.IsSessionValid(studentConnectionUtility, loginResult.Session.SessionToken, loginResult.Session.UserId); Assert.IsFalse(sessionValid.IsValid); Assert.Pass(); }
public async Task <Logic.Enums.AvailiabilityEnum> CheckEmailAvailiability(Logic.Models.AvailiabilityInput emailAddressToCheck) { if (string.IsNullOrEmpty(emailAddressToCheck.EntityToCheck) || string.IsNullOrEmpty(emailAddressToCheck.EntityToCheck.Trim())) { return(Logic.Enums.AvailiabilityEnum.None); } Logic.Providers.UserProvider provider = new Logic.Providers.UserProvider(); try { var result = await provider.CheckEmailAlreadyRegistered(_connectionUtility, emailAddressToCheck.EntityToCheck); if (result) { return(Logic.Enums.AvailiabilityEnum.NotAvailable); } return(Logic.Enums.AvailiabilityEnum.Available); } catch { return(Logic.Enums.AvailiabilityEnum.Unknown); } }
public async Task <Logic.Enums.AvailiabilityEnum> CheckDisplayNameAvaliability(Logic.Models.AvailiabilityInput displayName) { if (string.IsNullOrEmpty(displayName.EntityToCheck) || string.IsNullOrEmpty(displayName.EntityToCheck.Trim())) { return(Logic.Enums.AvailiabilityEnum.None); } Logic.Providers.UserProvider provider = new Logic.Providers.UserProvider(); try { var result = await provider.CheckDisplayNameAlreadyUsed(_connectionUtility, displayName.EntityToCheck); if (result) { return(Logic.Enums.AvailiabilityEnum.NotAvailable); } return(Logic.Enums.AvailiabilityEnum.Available); } catch { return(Logic.Enums.AvailiabilityEnum.Unknown); } }