keycloak-uncached

fix KEYCLOAK-8513 remove data dependency between testUpdateProfile

10/9/2018 3:05:36 AM

Details

diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/account/AccountRestServiceTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/account/AccountRestServiceTest.java
index 6f81bac..b24ec81 100755
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/account/AccountRestServiceTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/account/AccountRestServiceTest.java
@@ -36,7 +36,9 @@ import org.keycloak.testsuite.util.UserBuilder;
 
 import java.io.IOException;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import static org.hamcrest.Matchers.containsInAnyOrder;
 import static org.junit.Assert.*;
@@ -91,62 +93,80 @@ public class AccountRestServiceTest extends AbstractTestRealmKeycloakTest {
     @Test
     public void testUpdateProfile() throws IOException {
         UserRepresentation user = SimpleHttp.doGet(getAccountUrl(null), client).auth(tokenUtil.getToken()).asJson(UserRepresentation.class);
-        user.setFirstName("Homer");
-        user.setLastName("Simpsons");
-        user.getAttributes().put("attr1", Collections.singletonList("val1"));
-        user.getAttributes().put("attr2", Collections.singletonList("val2"));
+        String originalFirstName = user.getFirstName();
+        String originalLastName = user.getLastName();
+        String originalEmail = user.getEmail();
+        Map<String, List<String>> originalAttributes = new HashMap<>(user.getAttributes());
 
-        user = updateAndGet(user);
+        try {
+            user.setFirstName("Homer");
+            user.setLastName("Simpsons");
+            user.getAttributes().put("attr1", Collections.singletonList("val1"));
+            user.getAttributes().put("attr2", Collections.singletonList("val2"));
 
-        assertEquals("Homer", user.getFirstName());
-        assertEquals("Simpsons", user.getLastName());
-        assertEquals(2, user.getAttributes().size());
-        assertEquals(1, user.getAttributes().get("attr1").size());
-        assertEquals("val1", user.getAttributes().get("attr1").get(0));
-        assertEquals(1, user.getAttributes().get("attr2").size());
-        assertEquals("val2", user.getAttributes().get("attr2").get(0));
+            user = updateAndGet(user);
 
-        // Update attributes
-        user.getAttributes().remove("attr1");
-        user.getAttributes().get("attr2").add("val3");
+            assertEquals("Homer", user.getFirstName());
+            assertEquals("Simpsons", user.getLastName());
+            assertEquals(2, user.getAttributes().size());
+            assertEquals(1, user.getAttributes().get("attr1").size());
+            assertEquals("val1", user.getAttributes().get("attr1").get(0));
+            assertEquals(1, user.getAttributes().get("attr2").size());
+            assertEquals("val2", user.getAttributes().get("attr2").get(0));
 
-        user = updateAndGet(user);
+            // Update attributes
+            user.getAttributes().remove("attr1");
+            user.getAttributes().get("attr2").add("val3");
 
-        assertEquals(1, user.getAttributes().size());
-        assertEquals(2, user.getAttributes().get("attr2").size());
-        assertThat(user.getAttributes().get("attr2"), containsInAnyOrder("val2", "val3"));
+            user = updateAndGet(user);
 
-        // Update email
-        user.setEmail("bobby@localhost");
-        user = updateAndGet(user);
-        assertEquals("bobby@localhost", user.getEmail());
+            assertEquals(1, user.getAttributes().size());
+            assertEquals(2, user.getAttributes().get("attr2").size());
+            assertThat(user.getAttributes().get("attr2"), containsInAnyOrder("val2", "val3"));
 
-        user.setEmail("john-doh@localhost");
-        updateError(user, 409, Messages.EMAIL_EXISTS);
+            // Update email
+            user.setEmail("bobby@localhost");
+            user = updateAndGet(user);
+            assertEquals("bobby@localhost", user.getEmail());
 
-        user.setEmail("test-user@localhost");
-        user = updateAndGet(user);
-        assertEquals("test-user@localhost", user.getEmail());
+            user.setEmail("john-doh@localhost");
+            updateError(user, 409, Messages.EMAIL_EXISTS);
 
-        // Update username
-        user.setUsername("updatedUsername");
-        user = updateAndGet(user);
-        assertEquals("updatedusername", user.getUsername());
+            user.setEmail("test-user@localhost");
+            user = updateAndGet(user);
+            assertEquals("test-user@localhost", user.getEmail());
 
-        user.setUsername("john-doh@localhost");
-        updateError(user, 409, Messages.USERNAME_EXISTS);
+            // Update username
+            user.setUsername("updatedUsername");
+            user = updateAndGet(user);
+            assertEquals("updatedusername", user.getUsername());
 
-        user.setUsername("test-user@localhost");
-        user = updateAndGet(user);
-        assertEquals("test-user@localhost", user.getUsername());
+            user.setUsername("john-doh@localhost");
+            updateError(user, 409, Messages.USERNAME_EXISTS);
 
-        RealmRepresentation realmRep = adminClient.realm("test").toRepresentation();
-        realmRep.setEditUsernameAllowed(false);
-        adminClient.realm("test").update(realmRep);
+            user.setUsername("test-user@localhost");
+            user = updateAndGet(user);
+            assertEquals("test-user@localhost", user.getUsername());
 
-        user.setUsername("updatedUsername2");
-        updateError(user, 400, Messages.READ_ONLY_USERNAME);
+            RealmRepresentation realmRep = adminClient.realm("test").toRepresentation();
+            realmRep.setEditUsernameAllowed(false);
+            adminClient.realm("test").update(realmRep);
 
+            user.setUsername("updatedUsername2");
+            updateError(user, 400, Messages.READ_ONLY_USERNAME);
+        } finally {
+            RealmRepresentation realmRep = adminClient.realm("test").toRepresentation();
+            realmRep.setEditUsernameAllowed(true);
+            adminClient.realm("test").update(realmRep);
+
+            user.setFirstName(originalFirstName);
+            user.setLastName(originalLastName);
+            user.setEmail(originalEmail);
+            user.setAttributes(originalAttributes);
+            SimpleHttp.Response response = SimpleHttp.doPost(getAccountUrl(null), client).auth(tokenUtil.getToken()).json(user).asResponse();
+            System.out.println(response.asString());
+            assertEquals(200, response.getStatus());
+        }
 
     }