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 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);
        }
        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());
        }
        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);
        }
        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 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());
        }