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();
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        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);
            }
        }