parent
9c2511e205
commit
fe5d89295f
6 changed files with 115 additions and 44 deletions
|
@ -14,7 +14,7 @@
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package org.keycloak.testsuite.model;
|
package org.keycloak.testsuite.model.client;
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.nullValue;
|
import static org.hamcrest.CoreMatchers.nullValue;
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
|
@ -38,6 +38,8 @@ import org.keycloak.models.RoleProvider;
|
||||||
import org.keycloak.models.map.client.MapClientProvider;
|
import org.keycloak.models.map.client.MapClientProvider;
|
||||||
import org.keycloak.models.map.client.MapClientProviderFactory;
|
import org.keycloak.models.map.client.MapClientProviderFactory;
|
||||||
|
|
||||||
|
import org.keycloak.testsuite.model.KeycloakModelTest;
|
||||||
|
import org.keycloak.testsuite.model.RequireProvider;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -237,42 +239,4 @@ public class ClientModelTest extends KeycloakModelTest {
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testClientScopes() {
|
|
||||||
List<String> clientScopes = new LinkedList<>();
|
|
||||||
withRealm(realmId, (session, realm) -> {
|
|
||||||
ClientModel client = session.clients().addClient(realm, "myClientId");
|
|
||||||
|
|
||||||
ClientScopeModel clientScope1 = session.clientScopes().addClientScope(realm, "myClientScope1");
|
|
||||||
clientScopes.add(clientScope1.getId());
|
|
||||||
ClientScopeModel clientScope2 = session.clientScopes().addClientScope(realm, "myClientScope2");
|
|
||||||
clientScopes.add(clientScope2.getId());
|
|
||||||
|
|
||||||
|
|
||||||
client.addClientScope(clientScope1, true);
|
|
||||||
client.addClientScope(clientScope2, false);
|
|
||||||
|
|
||||||
return null;
|
|
||||||
});
|
|
||||||
|
|
||||||
withRealm(realmId, (session, realm) -> {
|
|
||||||
List<String> actualClientScopes = session.clientScopes().getClientScopesStream(realm).map(ClientScopeModel::getId).collect(Collectors.toList());
|
|
||||||
assertThat(actualClientScopes, containsInAnyOrder(clientScopes.toArray()));
|
|
||||||
|
|
||||||
ClientScopeModel clientScopeById = session.clientScopes().getClientScopeById(realm, clientScopes.get(0));
|
|
||||||
assertThat(clientScopeById.getId(), is(clientScopes.get(0)));
|
|
||||||
|
|
||||||
session.clientScopes().removeClientScopes(realm);
|
|
||||||
|
|
||||||
return null;
|
|
||||||
});
|
|
||||||
|
|
||||||
withRealm(realmId, (session, realm) -> {
|
|
||||||
List<ClientScopeModel> actualClientScopes = session.clientScopes().getClientScopesStream(realm).collect(Collectors.toList());
|
|
||||||
assertThat(actualClientScopes, empty());
|
|
||||||
|
|
||||||
return null;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -0,0 +1,100 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2023 Red Hat, Inc. and/or its affiliates
|
||||||
|
* and other contributors as indicated by the @author tags.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.keycloak.testsuite.model.clientscope;
|
||||||
|
|
||||||
|
import org.keycloak.models.ClientModel;
|
||||||
|
import org.keycloak.models.ClientProvider;
|
||||||
|
import org.keycloak.models.ClientScopeModel;
|
||||||
|
import org.keycloak.models.ClientScopeProvider;
|
||||||
|
import org.keycloak.models.Constants;
|
||||||
|
import org.keycloak.models.KeycloakSession;
|
||||||
|
import org.keycloak.models.RealmModel;
|
||||||
|
import org.keycloak.models.RealmProvider;
|
||||||
|
import org.keycloak.models.RoleProvider;
|
||||||
|
import org.keycloak.testsuite.model.KeycloakModelTest;
|
||||||
|
import org.keycloak.testsuite.model.RequireProvider;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import org.junit.Test;
|
||||||
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
|
import static org.hamcrest.Matchers.containsInAnyOrder;
|
||||||
|
import static org.hamcrest.Matchers.empty;
|
||||||
|
import static org.hamcrest.Matchers.is;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author hmlnarik
|
||||||
|
*/
|
||||||
|
@RequireProvider(RealmProvider.class)
|
||||||
|
@RequireProvider(ClientProvider.class)
|
||||||
|
@RequireProvider(ClientScopeProvider.class)
|
||||||
|
@RequireProvider(RoleProvider.class)
|
||||||
|
public class ClientScopeModelTest extends KeycloakModelTest {
|
||||||
|
|
||||||
|
private String realmId;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createEnvironment(KeycloakSession s) {
|
||||||
|
RealmModel realm = createRealm(s, "realm");
|
||||||
|
realm.setDefaultRole(s.roles().addRealmRole(realm, Constants.DEFAULT_ROLES_ROLE_PREFIX + "-" + realm.getName()));
|
||||||
|
this.realmId = realm.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cleanEnvironment(KeycloakSession s) {
|
||||||
|
s.realms().removeRealm(realmId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testClientScopes() {
|
||||||
|
List<String> clientScopes = new LinkedList<>();
|
||||||
|
withRealm(realmId, (session, realm) -> {
|
||||||
|
ClientModel client = session.clients().addClient(realm, "myClientId");
|
||||||
|
|
||||||
|
ClientScopeModel clientScope1 = session.clientScopes().addClientScope(realm, "myClientScope1");
|
||||||
|
clientScopes.add(clientScope1.getId());
|
||||||
|
ClientScopeModel clientScope2 = session.clientScopes().addClientScope(realm, "myClientScope2");
|
||||||
|
clientScopes.add(clientScope2.getId());
|
||||||
|
|
||||||
|
|
||||||
|
client.addClientScope(clientScope1, true);
|
||||||
|
client.addClientScope(clientScope2, false);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
|
withRealm(realmId, (session, realm) -> {
|
||||||
|
List<String> actualClientScopes = session.clientScopes().getClientScopesStream(realm).map(ClientScopeModel::getId).collect(Collectors.toList());
|
||||||
|
assertThat(actualClientScopes, containsInAnyOrder(clientScopes.toArray()));
|
||||||
|
|
||||||
|
ClientScopeModel clientScopeById = session.clientScopes().getClientScopeById(realm, clientScopes.get(0));
|
||||||
|
assertThat(clientScopeById.getId(), is(clientScopes.get(0)));
|
||||||
|
|
||||||
|
session.clientScopes().removeClientScopes(realm);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
|
withRealm(realmId, (session, realm) -> {
|
||||||
|
List<ClientScopeModel> actualClientScopes = session.clientScopes().getClientScopesStream(realm).collect(Collectors.toList());
|
||||||
|
assertThat(actualClientScopes, empty());
|
||||||
|
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -14,7 +14,7 @@
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package org.keycloak.testsuite.model;
|
package org.keycloak.testsuite.model.clientscope;
|
||||||
|
|
||||||
import org.hamcrest.Matchers;
|
import org.hamcrest.Matchers;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
@ -30,6 +30,8 @@ import org.keycloak.storage.StorageId;
|
||||||
import org.keycloak.storage.clientscope.ClientScopeStorageProvider;
|
import org.keycloak.storage.clientscope.ClientScopeStorageProvider;
|
||||||
import org.keycloak.storage.clientscope.ClientScopeStorageProviderModel;
|
import org.keycloak.storage.clientscope.ClientScopeStorageProviderModel;
|
||||||
import org.keycloak.testsuite.federation.HardcodedClientScopeStorageProviderFactory;
|
import org.keycloak.testsuite.federation.HardcodedClientScopeStorageProviderFactory;
|
||||||
|
import org.keycloak.testsuite.model.KeycloakModelTest;
|
||||||
|
import org.keycloak.testsuite.model.RequireProvider;
|
||||||
|
|
||||||
@RequireProvider(RealmProvider.class)
|
@RequireProvider(RealmProvider.class)
|
||||||
@RequireProvider(ClientScopeStorageProvider.class)
|
@RequireProvider(ClientScopeStorageProvider.class)
|
|
@ -14,7 +14,7 @@
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package org.keycloak.testsuite.model;
|
package org.keycloak.testsuite.model.user;
|
||||||
|
|
||||||
import org.keycloak.component.ComponentModel;
|
import org.keycloak.component.ComponentModel;
|
||||||
import org.keycloak.models.Constants;
|
import org.keycloak.models.Constants;
|
||||||
|
@ -32,6 +32,8 @@ import org.keycloak.storage.UserStorageProviderFactory;
|
||||||
import org.keycloak.storage.UserStorageProviderModel;
|
import org.keycloak.storage.UserStorageProviderModel;
|
||||||
import org.keycloak.storage.UserStorageUtil;
|
import org.keycloak.storage.UserStorageUtil;
|
||||||
import org.keycloak.storage.user.UserRegistrationProvider;
|
import org.keycloak.storage.user.UserRegistrationProvider;
|
||||||
|
import org.keycloak.testsuite.model.KeycloakModelTest;
|
||||||
|
import org.keycloak.testsuite.model.RequireProvider;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.keycloak.testsuite.model;
|
package org.keycloak.testsuite.model.user;
|
||||||
|
|
||||||
import org.hamcrest.Matchers;
|
import org.hamcrest.Matchers;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -10,12 +10,13 @@ import org.keycloak.models.RealmProvider;
|
||||||
import org.keycloak.models.UserModel;
|
import org.keycloak.models.UserModel;
|
||||||
import org.keycloak.models.UserProvider;
|
import org.keycloak.models.UserProvider;
|
||||||
import org.keycloak.storage.UserStorageProvider;
|
import org.keycloak.storage.UserStorageProvider;
|
||||||
import org.keycloak.storage.UserStorageProviderFactory;
|
|
||||||
import org.keycloak.storage.UserStorageProviderModel;
|
import org.keycloak.storage.UserStorageProviderModel;
|
||||||
import org.keycloak.testsuite.federation.UserPropertyFileStorage;
|
import org.keycloak.testsuite.federation.UserPropertyFileStorage;
|
||||||
import org.keycloak.testsuite.federation.UserPropertyFileStorage.UserPropertyFileStorageCall;
|
import org.keycloak.testsuite.federation.UserPropertyFileStorage.UserPropertyFileStorageCall;
|
||||||
import org.keycloak.testsuite.federation.UserPropertyFileStorageFactory;
|
import org.keycloak.testsuite.federation.UserPropertyFileStorageFactory;
|
||||||
|
import org.keycloak.testsuite.model.KeycloakModelTest;
|
||||||
|
|
||||||
|
import org.keycloak.testsuite.model.RequireProvider;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.keycloak.testsuite.model;
|
package org.keycloak.testsuite.model.user;
|
||||||
|
|
||||||
import org.hamcrest.Matchers;
|
import org.hamcrest.Matchers;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -35,6 +35,8 @@ import org.keycloak.storage.ldap.LDAPStorageProvider;
|
||||||
import org.keycloak.storage.ldap.LDAPStorageProviderFactory;
|
import org.keycloak.storage.ldap.LDAPStorageProviderFactory;
|
||||||
import org.keycloak.storage.user.ImportSynchronization;
|
import org.keycloak.storage.user.ImportSynchronization;
|
||||||
import org.keycloak.storage.user.SynchronizationResult;
|
import org.keycloak.storage.user.SynchronizationResult;
|
||||||
|
import org.keycloak.testsuite.model.KeycloakModelTest;
|
||||||
|
import org.keycloak.testsuite.model.RequireProvider;
|
||||||
import org.keycloak.testsuite.util.LDAPTestUtils;
|
import org.keycloak.testsuite.util.LDAPTestUtils;
|
||||||
|
|
||||||
import java.util.stream.IntStream;
|
import java.util.stream.IntStream;
|
Loading…
Reference in a new issue