public async Task User_should_be_able_to_change_password()
        {
            var createdResult = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var passwordRequest = new PasswordForgottenRequest
            {
                Username = createdResult.Data.First().Username
            };

            var tokenResult = await UserManagementApi.GetPasswordResetToken(passwordRequest);

            var tokenData = tokenResult.Data.First();

            var newPasswordRequest = new PasswordForgottenNewPassword
            {
                Username = tokenData.Username,
                Token    = tokenData.Token,
                Password = "******"
            };

            var changePasswordResult = await UserManagementApi.SetNewPasswordAfterReset(newPasswordRequest);

            Assert.True(createdResult.Success);
            Assert.True(tokenResult.Success);
            Assert.True(changePasswordResult.Success);
        }
예제 #2
0
        public void GetUserInfoTest()
        {
            GetUserInfoResultModel result = UserManagementApi.GetUserInfo(base.TestOpenId);

            Assert.NotNull(result);
            Assert.Equal(0, result.ErrorCode);
            Assert.True(result.OpenID.Length > 0);
        }
        public async Task User_should_be_deleted()
        {
            var createdResult = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var deleteResult = await UserManagementApi.DeleteUser(createdResult.Data.First().Id);

            Assert.True(createdResult.Success);
            Assert.True(deleteResult.Success);
        }
        public async Task Created_user_dto_should_match_fetched_by_id_dto()
        {
            var createdResult = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var fetchResult = await UserManagementApi.GetUserById(createdResult.Data.First().Id);

            Assert.True(createdResult.Success);
            Assert.True(fetchResult.Success);
            Assert.Equal(createdResult.Data, fetchResult.Data);
        }
        public async Task Created_user_dto_should_match_fetched_by_username_dto()
        {
            var createdResult = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var userData    = createdResult.Data.First();
            var fetchResult = await UserManagementApi.Search(new UsersTenantSearch(username : userData.Username));

            Assert.True(createdResult.Success);
            Assert.True(fetchResult.Success);
            Assert.Contains(createdResult.Data.First(), fetchResult.Data);
        }
        public void TestUserManagementSettings()
        {
            _env = new Environment();
            _env.SetUserVariable("Environment", "Development");
            var _ums            = new UserManagementApi();
            var _testConnection = _ums.ConnectionString;
            var _testEnvString  = _ums.Environment;

            Assert.IsTrue(_testEnvString.Equals("Development"));
            Assert.IsTrue(!string.IsNullOrWhiteSpace(_testConnection), "No Connection found");
        }
        public async Task Created_user_dto_should_match_original_dto()
        {
            var userDto       = GetUniqueTestUser;
            var createdResult = await UserManagementApi.CreateUser(userDto);

            var userData = createdResult.Data.First();

            Assert.True(createdResult.Success);
            Assert.Equal(userDto.Email, userData.Email);
            Assert.Equal(userDto.Username, userData.Username);
            Assert.Equal(userDto.AdditionalDataJson, userData.AdditionalDataJson);
        }
        public async Task User_should_be_assigned_to_role()
        {
            var userResult = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var userData = userResult.Data.First();

            await LoadRoles();

            var roleAddResult = await UserManagementApi.AddUserToRole(userData.Id, Role1.Id);

            Assert.True(userResult.Success);
            Assert.True(roleAddResult.Success);
        }
        public async Task Getting_user_by_multiple_params_should_work()
        {
            var createdResult = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var userData = createdResult.Data.First();

            var fetchResult1 = await UserManagementApi.GetUserById(userData.Id);

            var fetchResult2 = await UserManagementApi.Search(new UsersTenantSearch(username : userData.Username));

            Assert.True(createdResult.Success);
            Assert.True(fetchResult1.Success);
            Assert.True(fetchResult2.Success);
        }
        public async Task Getting_profile_should_work()
        {
            var userDto = GetUniqueTestUser;
            await UserManagementApi.CreateUser(userDto);

            var tokenRequest = TokenRequest.PasswordTokenRequest(ClientId, userDto.Username, userDto.Password);
            var restResult   = await restClient.Post <IdentityUtilsResult <TokenResponse> >($"{BaseUrl}/auth/token", tokenRequest);

            var accessToken = restResult.ResponseData.Data.First().AccessToken;

            var profileRestResult = await restClient.Get <IdentityUtilsResult <UserProfile> >($"{BaseUrl}/auth/init", accessToken);

            Assert.True(profileRestResult.Success);
            Assert.True(profileRestResult.ResponseData.Success);
            Assert.NotEmpty(profileRestResult.ResponseData.Data);
        }
        public async Task Getting_auth_token_should_work()
        {
            var userDto = GetUniqueTestUser;
            await UserManagementApi.CreateUser(userDto);

            var tokenRequest = TokenRequest.PasswordTokenRequest(ClientId, userDto.Username, userDto.Password);
            var restResult   = await restClient.Post <IdentityUtilsResult <TokenResponse> >($"{BaseUrl}/auth/token", tokenRequest);

            var tokenData = restResult.ResponseData?.Data?.FirstOrDefault();

            Assert.True(restResult.Success);
            Assert.True(restResult.ResponseData.Success);
            Assert.NotNull(tokenData);
            Assert.NotEmpty(tokenData.AccessToken);
            Assert.NotEmpty(tokenData.RefreshToken);
        }
예제 #12
0
        public async Task Managing_user_roles_should_work_properly_after_multiple_operations()
        {
            var userResult = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var userData = userResult.Data.First();

            await LoadRoles();

            var roleRemoveResult = await UserManagementApi.RemoveUserFromRole(userData.Id, Role1.Id);

            var userRoles = await UserManagementApi.GetUserRoles(userData.Id);

            Assert.True(userResult.Success);
            Assert.True(roleRemoveResult.Success);
            Assert.Empty(userRoles.Data);
        }
예제 #13
0
        public async Task User_should_be_updated()
        {
            var createdResult = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var userDto = createdResult.Data.First();

            userDto.Email = "*****@*****.**";
            var updatedResult = await UserManagementApi.UpdateUser(userDto);

            var fetchResult = await UserManagementApi.GetUserById(userDto.Id);

            Assert.True(createdResult.Success);
            Assert.True(updatedResult.Success);
            Assert.True(fetchResult.Success);
            Assert.Equal(userDto.Email, fetchResult.Data.First().Email);
        }
예제 #14
0
        public async Task Adding_user_to_multiple_roles_should_work()
        {
            var userResult = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var userData = userResult.Data.First();

            await LoadRoles();

            var roleAddResult1 = await UserManagementApi.AddUserToRole(userData.Id, Role1.Id);

            var roleAddResult2 = await UserManagementApi.AddUserToRole(userData.Id, Role2.Id);

            var userRoles = await UserManagementApi.GetUserRoles(userData.Id);

            Assert.True(userResult.Success);
            Assert.True(roleAddResult1.Success);
            Assert.True(roleAddResult2.Success);
            Assert.Equal(2, userRoles.Data.Count());
        }
예제 #15
0
        public async Task Adding_user_to_role_multiple_times_shouldnt_do_anything()
        {
            var userResult = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var userData = userResult.Data.First();

            await LoadRoles();

            var role1AddResult = await UserManagementApi.AddUserToRole(userData.Id, Role1.Id);

            var role2AddResult = await UserManagementApi.AddUserToRole(userData.Id, Role1.Id);

            var userRoles = await UserManagementApi.GetUserRoles(userData.Id);

            Assert.True(userResult.Success);
            Assert.True(role1AddResult.Success);
            Assert.True(role2AddResult.Success);
            Assert.Single(userRoles.Data);
        }
예제 #16
0
        public async Task Removing_user_from_role_should_work()
        {
            var userResult = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var userData = userResult.Data.First();

            await LoadRoles();

            var roleAddResult = await UserManagementApi.AddUserToRole(userData.Id, Role1.Id);

            var roleRemoveResult = await UserManagementApi.RemoveUserFromRole(userData.Id, Role1.Id);

            var userRoles = await UserManagementApi.GetUserRoles(userData.Id);

            Assert.True(userResult.Success);
            Assert.True(roleAddResult.Success);
            Assert.True(roleRemoveResult.Success);
            Assert.Empty(userRoles.Data);
        }
예제 #17
0
        public static void Run()
        {
            try
            {
                var organizationId = "testrest";
                var permissionId   = "CustomerProfileViewPermission";
                var roleId         = "admin";
                var username       = "******";

                var configDictionary = new Configuration().GetConfiguration();
                var clientConfig     = new CyberSource.Client.Configuration(merchConfigDictObj: configDictionary);
                var apiInstance      = new UserManagementApi(clientConfig);

                var result = apiInstance.GetUsers(organizationId);
                Console.WriteLine(result);
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception on calling the API: " + e.Message);
            }
        }
        public static UmsV1UsersGet200Response Run()
        {
            string organizationId = "testrest";
            string userName       = null;
            string permissionId   = "CustomerProfileViewPermission";
            string roleId         = null;

            try
            {
                var configDictionary = new Configuration().GetConfiguration();
                var clientConfig     = new CyberSource.Client.Configuration(merchConfigDictObj: configDictionary);

                var apiInstance = new UserManagementApi(clientConfig);
                UmsV1UsersGet200Response result = apiInstance.GetUsers(organizationId, userName, permissionId, roleId);
                Console.WriteLine(result);
                return(result);
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception on calling the API : " + e.Message);
                return(null);
            }
        }
예제 #19
0
        public async Task Fetching_users_per_role_should_filter_correctly()
        {
            await LoadRoles();

            var userCreatedResult1 = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var userCreatedResult2 = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var userData1 = userCreatedResult1.Data.First();
            var userData2 = userCreatedResult2.Data.First();

            await UserManagementApi.AddUserToRole(userData1.Id, Role1.Id);

            await UserManagementApi.AddUserToRole(userData1.Id, Role2.Id);

            await UserManagementApi.AddUserToRole(userData2.Id, Role2.Id);

            var usersInRoleResult1 = await UserManagementApi.Search(new UsersSearch(Role1.Id));

            var usersInRoleResult2 = await UserManagementApi.Search(new UsersSearch(Role2.Id));

            Assert.Single(usersInRoleResult1.Data);
            Assert.Equal(2, usersInRoleResult2.Data.Count());
        }
예제 #20
0
        public async Task Removing_user_from_unassigned_role_shouldnt_do_anything()
        {
            var userResult = await UserManagementApi.CreateUser(GetUniqueTestUser);

            var userData = userResult.Data.First();

            await LoadRoles();

            await UserManagementApi.AddUserToRole(userData.Id, Role1.Id);

            await UserManagementApi.AddUserToRole(userData.Id, Role2.Id);

            await UserManagementApi.AddUserToRole(userData.Id, Role2.Id);

            await UserManagementApi.RemoveUserFromRole(userData.Id, Role1.Id);

            await UserManagementApi.RemoveUserFromRole(userData.Id, Role2.Id);

            await UserManagementApi.AddUserToRole(userData.Id, Role2.Id);

            var userRoles = await UserManagementApi.GetUserRoles(userData.Id);

            Assert.Single(userRoles.Data);
        }
 public void Init()
 {
     instance = new UserManagementApi();
 }
        public async System.Threading.Tasks.Task TestAddNewUserByUserNameAsync()
        {
            _env   = new Environment();
            _users = new UserManagementApi();
            _env.SetUserVariable("Environment", "Development");
            _user = new User
            {
                //1- Create Dummy User
                Id           = System.Guid.Parse("F037567D-54BC-4044-A6F4-66A7E85A0E34"),
                UserName     = "******",
                GivenName    = "carlos",
                SurName      = "perez",
                PasswordHash = "TestGoog!e1",
                Email        = "*****@*****.**"
            };

            //2- Delete records
            await _users.DeleteAllUsers();

            await _users.DeleteRoles();


            //3- Add User Records
            var _userResponse = await _users.AddOrUpdateUserWithUserName(_user);

            Assert.IsTrue(_userResponse.Status.Equals("ok"), _userResponse.Msg);

            //4- Update User - changed username and same password
            _user.UserName     = "******";
            _user.PasswordHash = "TestGoog!e1";
            _userResponse      = await _users.AddOrUpdateUserWithUserName(_user);

            Assert.IsTrue(_userResponse.Status.Equals("ok"), _userResponse.Msg);

            //5- Lock The Account
            _userResponse = await _users.SetLockState(_user.Id, "This account is locked due to payments", true);

            Assert.IsTrue(_userResponse.LockEnabled, _userResponse.Msg);

            System.Threading.Thread.Sleep(500);

            //5- Unlock The Account
            _userResponse = await _users.SetLockState(_user.Id, "Payments Received for $200", false);

            Assert.IsTrue(!_userResponse.LockEnabled, _userResponse.Msg);

            //6- Disable the account and verify
            System.Threading.Thread.Sleep(500);
            _userResponse = await _users.SetActiveState(_user.Id, "Deleting the Account for Temp reasons!", false);

            Assert.IsTrue(!_userResponse.IsActive, "failed to disable the user account");


            //7- Enable the account and verify
            System.Threading.Thread.Sleep(500);
            _userResponse = await _users.SetActiveState(_user.Id, "Found the Problem. Account was enable after receiving the email from Peter", true);

            Assert.IsTrue(_userResponse.IsActive, "failed to enable the user account");

            //8- Find User By UserName
            _userResponse = await _users.GetUserByUserName("cperez1");

            Assert.IsTrue((_userResponse.Status.Equals("ok") && _userResponse.Email.Equals("*****@*****.**")), _userResponse.Msg);

            //9- Find User By Email
            _userResponse = await _users.GetUserByEmail("*****@*****.**");

            Assert.IsTrue((_userResponse.Status.Equals("ok") && _userResponse.UserName.Equals("cperez1")), _userResponse.Msg);

            //10- Delete the User Account
            _userResponse = await _users.DeleteUserAccount(_user.Id, "Testing Delete Account");

            var _userList = await _users.GetActiveUsers();

            Assert.IsTrue(_userList.Count == 0, "Failed to Delete Account");

            //11- Set the Account Active again
            _userResponse = await _users.SetActiveState(_user.Id, "User is back", true);

            Assert.IsTrue(_userResponse.IsActive, "failed to enable the user account");

            //12- Reset Password- Mismatch Error
            _userResponse = await _users.ResetPassword(_user.Email, "TestGoog!e3", "TestGoog!e2");

            Assert.IsTrue(_userResponse.Status.Equals("error"), _userResponse.Msg);

            //12- Reset Password- Mismatch and change password
            _userResponse = await _users.ResetPassword(_user.Email, "TestGoog!e1", "TestGoog!e2");

            Assert.IsTrue(_userResponse.Status.Equals("ok"), _userResponse.Msg);

            //13- Login with New password
            _userResponse = await _users.LoginByEmail(_user.Email, "TestGoog!e2");

            Assert.IsTrue(_userResponse.Status.Equals("ok"), _userResponse.Msg);

            //14- Login with invalid params
            _userResponse = await _users.LoginByEmail(_user.Email, "");

            Assert.IsTrue(_userResponse.Status.Equals("error"), _userResponse.Msg);

            //15- Login with invalid email
            _userResponse = await _users.LoginByEmail("123@", "TestGoog!e2");

            Assert.IsTrue(_userResponse.Status.Equals("error"), _userResponse.Msg);

            //16- Login with old password
            _userResponse = await _users.LoginByEmail(_user.Email, "TestGoog!e1");

            Assert.IsTrue(_userResponse.Status.Equals("error"), _userResponse.Msg);

            //17- Login with New password...again
            var loginemail = new LoginEmail
            {
                Email    = _user.Email,
                Password = "******"
            };

            _userResponse = await _users.LoginByEmail(loginemail);

            Assert.IsTrue(_userResponse.Status.Equals("ok"), _userResponse.Msg);

            //18- Login by UserName
            var userlogin = new LoginUser
            {
                UserName = _user.UserName,
                Password = "******"
            };

            _userResponse = await _users.LoginByUserName(userlogin);

            Assert.IsTrue(_userResponse.Status.Equals("ok"), _userResponse.Msg);

            //19- Verify User Counts
            _userList = await _users.GetActiveUsers();

            Assert.IsTrue(_userList.Count > 0, "Failed to Retrived All Users");

            //ROLES::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
            //20- Add Roles
            var _roleName = "anonymous user";
            var _role     = await _users.AddRole(_roleName);

            Assert.IsTrue(_role.RoleName.Equals(_roleName), $"unable to add new role: {_roleName}");

            //21- Add Roles
            _roleName = "authenticated user";
            _role     = await _users.AddRole(_roleName);

            Assert.IsTrue(_role.RoleName.Equals(_roleName), $"unable to add new role: {_roleName}");

            //22- make sure no duplicate names are added
            _roleName = "authenticated user";
            _role     = await _users.AddRole(_roleName);

            Assert.IsTrue(_role.RoleName.Equals(_roleName), $"unable to add new role: {_roleName}");

            //23- Add Roles
            _roleName = "administrator";
            _role     = await _users.AddRole(_roleName);

            Assert.IsTrue(_role.RoleName.Equals(_roleName), $"unable to add new role: {_roleName}");
            var updateId = _role.Id;

            //24- Add dummy role to delete
            _roleName = "dummy";
            _role     = await _users.AddRole(_roleName);

            Assert.IsTrue(_role.RoleName.Equals(_roleName), $"unable to add new role: {_roleName}");

            _role = await _users.GetRole(_role.Id);

            Assert.IsTrue(_role.IsActive, $"unable to get role: {_role.Id}");


            _roleName = "dummy";
            await _users.DeleteRole(_role.Id);

            _role = await _users.GetRoleByName("dummy");

            Assert.IsTrue(_role == null, $"unable to delete dummy");

            //25- Update Role
            _roleName = "administrator2";
            _role     = await _users.UpdateRole(updateId, "administrator2");

            Assert.IsTrue(_role.RoleName.Equals(_roleName));

            //26- Register a New User with email (may consider deleting "user")
            _userResponse = await _users.Register("*****@*****.**", "JP632tilla1!", "carlos perez");

            Assert.IsTrue(_userResponse.Status.Equals("ok"), _userResponse.Msg);
        }
예제 #23
0
        public async Task Deleting_nonexisting_user_should_fail_gracefully()
        {
            var deleteResult = await UserManagementApi.DeleteUser(Guid.NewGuid());

            Assert.False(deleteResult.Success);
        }