keycloak-aplcache

Details

diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AssertEvents.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AssertEvents.java
index cab58d9..56d2fd2 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AssertEvents.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AssertEvents.java
@@ -63,9 +63,12 @@ public class AssertEvents implements TestRule {
         return new Statement() {
             @Override
             public void evaluate() throws Throwable {
-                base.evaluate();
-                // TODO Test should fail if there are leftover events
-                context.testingClient.testing().clearQueue();
+                try {
+                    base.evaluate();
+                } finally {
+                    // TODO Test should fail if there are leftover events
+                    context.testingClient.testing().clearQueue();
+                }
             }
         };
     }
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oauth/ServiceAccountTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oauth/ServiceAccountTest.java
index 551f321..c3b05cb 100755
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oauth/ServiceAccountTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oauth/ServiceAccountTest.java
@@ -220,7 +220,7 @@ public class ServiceAccountTest extends AbstractKeycloakTest {
     @Test
     public void changeClientIdTest() throws Exception {
 
-        ClientManager.realm(adminClient.realm("test")).rename("service-account-cl", "updated-client");
+        ClientManager.realm(adminClient.realm("test")).clientId("service-account-cl").renameTo("updated-client");
 
         oauth.clientId("updated-client");
 
@@ -243,7 +243,7 @@ public class ServiceAccountTest extends AbstractKeycloakTest {
                 .assertEvent();
 
 
-        ClientManager.realm(adminClient.realm("test")).rename("updated-client", "service-account-cl");
+        ClientManager.realm(adminClient.realm("test")).clientId("updated-client").renameTo("service-account-cl");
 
     }
 }
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ClientBuilder.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ClientBuilder.java
index c2d8385..b3f3c8d 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ClientBuilder.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ClientBuilder.java
@@ -17,13 +17,18 @@
 
 package org.keycloak.testsuite.util;
 
+import org.codehaus.plexus.util.xml.pull.XmlSerializer;
 import org.keycloak.representations.idm.ClientRepresentation;
 import org.keycloak.representations.idm.UserRepresentation;
 
 import javax.ws.rs.client.Client;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
@@ -74,4 +79,21 @@ public class ClientBuilder {
         return rep;
     }
 
+    public ClientBuilder attribute(String name, String value) {
+        Map<String, String> attributes = new HashMap<String, String>();
+        attributes.put(name, value);
+        rep.setAttributes(attributes);
+
+        return this;
+    }
+
+    public ClientBuilder authenticatorType(String providerId) {
+        rep.setClientAuthenticatorType(providerId);
+        return this;
+    }
+
+    public ClientBuilder redirectUris(String... redirectUris) {
+        rep.setRedirectUris(Arrays.asList(redirectUris));
+        return this;
+    }
 }
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ClientManager.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ClientManager.java
index 5e98ab5..9c06c5d 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ClientManager.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ClientManager.java
@@ -4,7 +4,9 @@ import org.keycloak.admin.client.resource.ClientResource;
 import org.keycloak.admin.client.resource.RealmResource;
 import org.keycloak.representations.idm.ClientRepresentation;
 
-import java.util.List;
+import java.util.Map;
+
+import static org.keycloak.testsuite.admin.ApiUtil.findClientByClientId;
 
 /**
  * @author <a href="mailto:bruno@abstractj.org">Bruno Oliveira</a>.
@@ -13,20 +15,43 @@ public class ClientManager {
 
     private static RealmResource realm;
 
-    private ClientManager(){}
+    private ClientManager() {
+    }
 
     public static ClientManager realm(RealmResource realm) {
         ClientManager.realm = realm;
         return new ClientManager();
     }
 
-    public void rename(String oldName, String newName) {
-        List<ClientRepresentation> client = realm.clients().findByClientId(oldName);
-        if (!client.isEmpty()) {
-            ClientResource clientResource = realm.clients().get(client.get(0).getId());
+    public ClientManagerBuilder clientId(String clientId) {
+        return new ClientManagerBuilder(findClientByClientId(realm, clientId));
+    }
+
+    public class ClientManagerBuilder {
+
+        private final ClientResource clientResource;
+
+        public ClientManagerBuilder(ClientResource clientResource) {
+            this.clientResource = clientResource;
+        }
+
+        public void renameTo(String newName) {
             ClientRepresentation app = clientResource.toRepresentation();
             app.setClientId(newName);
             clientResource.update(app);
         }
+
+        public void enabled(Boolean enabled) {
+            ClientRepresentation app = clientResource.toRepresentation();
+            app.setEnabled(enabled);
+            clientResource.update(app);
+        }
+
+        public void updateAttribute(String attribute, String value) {
+            ClientRepresentation app = clientResource.toRepresentation();
+            app.getAttributes().put(attribute, value);
+            clientResource.update(app);
+        }
+
     }
 }
diff --git a/testsuite/integration-arquillian/tests/base/src/test/resources/client-auth-test/keystore-client1.jks b/testsuite/integration-arquillian/tests/base/src/test/resources/client-auth-test/keystore-client1.jks
new file mode 100644
index 0000000..9b2a4d6
Binary files /dev/null and b/testsuite/integration-arquillian/tests/base/src/test/resources/client-auth-test/keystore-client1.jks differ
diff --git a/testsuite/integration-arquillian/tests/base/src/test/resources/client-auth-test/keystore-client2.jks b/testsuite/integration-arquillian/tests/base/src/test/resources/client-auth-test/keystore-client2.jks
new file mode 100644
index 0000000..03aa281
Binary files /dev/null and b/testsuite/integration-arquillian/tests/base/src/test/resources/client-auth-test/keystore-client2.jks differ
diff --git a/testsuite/integration-arquillian/tests/base/src/test/resources/client-auth-test/keystore-client2.p12 b/testsuite/integration-arquillian/tests/base/src/test/resources/client-auth-test/keystore-client2.p12
new file mode 100644
index 0000000..b7af880
Binary files /dev/null and b/testsuite/integration-arquillian/tests/base/src/test/resources/client-auth-test/keystore-client2.p12 differ