You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by cs...@apache.org on 2013/02/08 12:03:38 UTC

svn commit: r1443934 - in /syncope/trunk/core/src: main/java/org/apache/syncope/core/rest/controller/UserController.java test/java/org/apache/syncope/core/rest/UserTestITCase.java

Author: cschneider
Date: Fri Feb  8 11:03:38 2013
New Revision: 1443934

URL: http://svn.apache.org/r1443934
Log:
SYNCOPE-231 Small refactoring of UserService and test

Modified:
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java?rev=1443934&r1=1443933&r2=1443934&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java Fri Feb  8 11:03:38 2013
@@ -670,13 +670,7 @@ public class UserController {
 
         WorkflowResult<Long> updated;
         if (propagationRequestTO == null || propagationRequestTO.isOnSyncope()) {
-            if ("suspend".equals(task)) {
-                updated = uwfAdapter.suspend(user.getId());
-            } else if ("reactivate".equals(task)) {
-                updated = uwfAdapter.reactivate(user.getId());
-            } else {
-                updated = uwfAdapter.activate(user.getId(), token);
-            }
+            updated = setStatusOnWfAdapter(user, token, task);
         } else {
             updated = new WorkflowResult<Long>(user.getId(), null, task);
         }
@@ -702,6 +696,19 @@ public class UserController {
         return savedTO;
     }
 
+	private WorkflowResult<Long> setStatusOnWfAdapter(
+			final SyncopeUser user, final String token, final String task) {
+		WorkflowResult<Long> updated;
+		if ("suspend".equals(task)) {
+		    updated = uwfAdapter.suspend(user.getId());
+		} else if ("reactivate".equals(task)) {
+		    updated = uwfAdapter.reactivate(user.getId());
+		} else {
+		    updated = uwfAdapter.activate(user.getId(), token);
+		}
+		return updated;
+	}
+
     protected UserTO doDelete(final Long userId)
             throws NotFoundException, WorkflowException, PropagationException, UnauthorizedRoleException {
 

Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java?rev=1443934&r1=1443933&r2=1443934&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java Fri Feb  8 11:03:38 2013
@@ -78,7 +78,10 @@ import org.springframework.web.client.Ht
 @FixMethodOrder(MethodSorters.JVM)
 public class UserTestITCase extends AbstractTest {
 
-    private ConnObjectTO readUserConnObj(final String resourceName, final String userId) {
+    private static final String RESOURCE_NAME_LDAP = "resource-ldap";
+	private static final String RESOURCE_NAME_TESTDB = "resource-testdb";
+
+	private ConnObjectTO readUserConnObj(final String resourceName, final String userId) {
         return resourceService.getConnector(resourceName, AttributableType.USER, userId);
     }
 
@@ -334,7 +337,7 @@ public class UserTestITCase extends Abst
     @Test
     public void createUserWithDbPropagation() {
         UserTO userTO = getUniqueSampleTO("yyy@yyy.yyy");
-        userTO.addResource("resource-testdb");
+        userTO.addResource(RESOURCE_NAME_TESTDB);
         userTO = createUser(userTO);
         assertNotNull(userTO);
         assertEquals(1, userTO.getPropagationStatusTOs().size());
@@ -595,7 +598,7 @@ public class UserTestITCase extends Abst
         JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
 
         UserTO userTO = getUniqueSampleTO("createWithApproval@syncope.apache.org");
-        userTO.addResource("resource-testdb");
+        userTO.addResource(RESOURCE_NAME_TESTDB);
 
         // User with role 9 are defined in workflow as subject to approval
         MembershipTO membershipTO = new MembershipTO();
@@ -608,7 +611,7 @@ public class UserTestITCase extends Abst
         assertEquals(1, userTO.getMemberships().size());
         assertEquals(9, userTO.getMemberships().get(0).getRoleId());
         assertEquals("createApproval", userTO.getStatus());
-        assertEquals(Collections.singleton("resource-testdb"), userTO.getResources());
+        assertEquals(Collections.singleton(RESOURCE_NAME_TESTDB), userTO.getResources());
 
         assertTrue(userTO.getPropagationStatusTOs().isEmpty());
 
@@ -643,7 +646,7 @@ public class UserTestITCase extends Abst
         userTO = userService.submitForm(form);
         assertNotNull(userTO);
         assertEquals("active", userTO.getStatus());
-        assertEquals(Collections.singleton("resource-testdb"), userTO.getResources());
+        assertEquals(Collections.singleton(RESOURCE_NAME_TESTDB), userTO.getResources());
 
         exception = null;
         try {
@@ -675,7 +678,7 @@ public class UserTestITCase extends Abst
         UserTO userTO = getSampleTO("qqgf.z@nn.com");
 
         // specify a propagation
-        userTO.addResource("resource-testdb");
+        userTO.addResource(RESOURCE_NAME_TESTDB);
 
         userTO = createUser(userTO);
 
@@ -703,7 +706,7 @@ public class UserTestITCase extends Abst
         UserTO userTO = getSampleTO("delete.by.username@apache.org");
 
         // specify a propagation
-        userTO.addResource("resource-testdb");
+        userTO.addResource(RESOURCE_NAME_TESTDB);
 
         userTO = createUser(userTO);
 
@@ -1107,70 +1110,63 @@ public class UserTestITCase extends Abst
 
     @Test
     public void suspendReactivateOnResource() {
-        UserTO userTO = getUniqueSampleTO("suspreactonresource@syncope.apache.org");
-
-        userTO.getMemberships().clear();
-        userTO.getResources().clear();
-
-        ResourceTO dbTable = resourceService.read("resource-testdb");
-
+    	// Assert resources are present
+        ResourceTO dbTable = resourceService.read(RESOURCE_NAME_TESTDB);
         assertNotNull(dbTable);
-        userTO.addResource(dbTable.getName());
-
-        ResourceTO ldap = resourceService.read("resource-ldap");
-
+        ResourceTO ldap = resourceService.read(RESOURCE_NAME_LDAP);
         assertNotNull(ldap);
-        userTO.addResource(ldap.getName());
 
+        // Create user with reference to resources
+        UserTO userTO = getUniqueSampleTO("suspreactonresource@syncope.apache.org");
+        userTO.getMemberships().clear();
+        userTO.getResources().clear();
+        userTO.addResource(RESOURCE_NAME_TESTDB);
+        userTO.addResource(RESOURCE_NAME_LDAP);
         userTO = createUser(userTO);
-
         assertNotNull(userTO);
         assertEquals(ActivitiDetector.isActivitiEnabledForUsers()
                 ? "active"
                 : "created", userTO.getStatus());
+        String userName = userTO.getUsername();
+        long userId = userTO.getId();
 
+        // Suspend with effect on syncope, ldap and db => user should be suspended in syncope and all resources 
         PropagationRequestTO propagationRequestTO = new PropagationRequestTO();
         propagationRequestTO.setOnSyncope(true);
-        propagationRequestTO.addResource(dbTable.getName());
-        propagationRequestTO.addResource(ldap.getName());
-        userTO = userService.suspend(userTO.getId(), propagationRequestTO);
-
+        propagationRequestTO.addResource(RESOURCE_NAME_TESTDB);
+        propagationRequestTO.addResource(RESOURCE_NAME_LDAP);
+        userTO = userService.suspend(userId, propagationRequestTO);
         assertNotNull(userTO);
         assertEquals("suspended", userTO.getStatus());
 
-        String dbTableUID = userTO.getUsername();
-        assertNotNull(dbTableUID);
-
-        ConnObjectTO connObjectTO = readUserConnObj(dbTable.getName(), dbTableUID);
+        ConnObjectTO connObjectTO = readUserConnObj(RESOURCE_NAME_TESTDB, userName);
         assertFalse(getBooleanAttribute(connObjectTO, OperationalAttributes.ENABLE_NAME));
 
-        String ldapUID = userTO.getUsername();
-        assertNotNull(ldapUID);
-
-        connObjectTO = readUserConnObj(ldap.getName(), ldapUID);
+        connObjectTO = readUserConnObj(RESOURCE_NAME_LDAP, userName);
         assertNotNull(connObjectTO);
 
+        // Suspend and reactivate only on ldap => db and syncope should still show suspended
         propagationRequestTO = new PropagationRequestTO();
         propagationRequestTO.setOnSyncope(false);
-        propagationRequestTO.addResource(ldap.getName());
-        userTO = userService.suspend(userTO.getId(), propagationRequestTO);
-
-        userTO = userService.reactivate(userTO.getId(), propagationRequestTO);
+        propagationRequestTO.addResource(RESOURCE_NAME_LDAP);
+        userTO = userService.suspend(userId, propagationRequestTO);
+        userTO = userService.reactivate(userId, propagationRequestTO);
         assertNotNull(userTO);
         assertEquals("suspended", userTO.getStatus());
 
-        connObjectTO = readUserConnObj(dbTable.getName(), dbTableUID);
+        connObjectTO = readUserConnObj(RESOURCE_NAME_TESTDB, userName);
         assertFalse(getBooleanAttribute(connObjectTO, OperationalAttributes.ENABLE_NAME));
 
+        // Reactivate on syncope and db => syncope and db should show the user as active
         propagationRequestTO = new PropagationRequestTO();
         propagationRequestTO.setOnSyncope(true);
-        propagationRequestTO.addResource(dbTable.getName());
+        propagationRequestTO.addResource(RESOURCE_NAME_TESTDB);
 
-        userTO = userService.reactivate(userTO.getId(), propagationRequestTO);
+        userTO = userService.reactivate(userId, propagationRequestTO);
         assertNotNull(userTO);
         assertEquals("active", userTO.getStatus());
 
-        connObjectTO = readUserConnObj(dbTable.getName(), dbTableUID);
+        connObjectTO = readUserConnObj(RESOURCE_NAME_TESTDB, userName);
         assertTrue(getBooleanAttribute(connObjectTO, OperationalAttributes.ENABLE_NAME));
     }
 
@@ -1206,7 +1202,7 @@ public class UserTestITCase extends Abst
     @Test(expected = EmptyResultDataAccessException.class)
     public void issue213() {
         UserTO userTO = getUniqueSampleTO("issue213@syncope.apache.org");
-        userTO.addResource("resource-testdb");
+        userTO.addResource(RESOURCE_NAME_TESTDB);
 
         userTO = createUser(userTO);
         assertNotNull(userTO);
@@ -1222,7 +1218,7 @@ public class UserTestITCase extends Abst
         UserMod userMod = new UserMod();
 
         userMod.setId(userTO.getId());
-        userMod.addResourceToBeRemoved("resource-testdb");
+        userMod.addResourceToBeRemoved(RESOURCE_NAME_TESTDB);
 
         userTO = userService.update(userMod.getId(), userMod);
 
@@ -1234,7 +1230,7 @@ public class UserTestITCase extends Abst
     @Test
     public void issue234() {
         UserTO inUserTO = getUniqueSampleTO("issue234@syncope.apache.org");
-        inUserTO.addResource("resource-ldap");
+        inUserTO.addResource(RESOURCE_NAME_LDAP);
 
         UserTO userTO = createUser(inUserTO);
         assertNotNull(userTO);
@@ -1297,7 +1293,7 @@ public class UserTestITCase extends Abst
         UserMod userMod = new UserMod();
         userMod.setId(userTO.getId());
         userMod.setPassword("123password");
-        userMod.addResourceToBeAdded("resource-testdb");
+        userMod.addResourceToBeAdded(RESOURCE_NAME_TESTDB);
 
         userTO = userService.update(userMod.getId(), userMod);
         assertNotNull(userTO);
@@ -1311,7 +1307,7 @@ public class UserTestITCase extends Abst
         final String resource = propagations.get(0).getResource();
 
         assertNotNull(status);
-        assertEquals("resource-testdb", resource);
+        assertEquals(RESOURCE_NAME_TESTDB, resource);
         assertTrue(status.isSuccessful());
     }
 
@@ -1544,13 +1540,13 @@ public class UserTestITCase extends Abst
         memb13.setRoleId(13L);
         userTO.addMembership(memb13);
 
-        userTO.addResource("resource-ldap");
+        userTO.addResource(RESOURCE_NAME_LDAP);
 
         UserTO actual = createUser(userTO);
         assertNotNull(actual);
         assertEquals(2, actual.getMemberships().size());
 
-        ConnObjectTO connObjectTO = readUserConnObj("resource-ldap", userTO.getUsername());
+        ConnObjectTO connObjectTO = readUserConnObj(RESOURCE_NAME_LDAP, userTO.getUsername());
         assertNotNull(connObjectTO);
 
         AttributeTO postalAddress = connObjectTO.getAttributeMap().get("postalAddress");
@@ -1579,7 +1575,7 @@ public class UserTestITCase extends Abst
         assertNotNull(actual);
         assertEquals(1, actual.getMemberships().size());
 
-        connObjectTO = readUserConnObj("resource-ldap", userTO.getUsername());
+        connObjectTO = readUserConnObj(RESOURCE_NAME_LDAP, userTO.getUsername());
         assertNotNull(connObjectTO);
 
         postalAddress = connObjectTO.getAttributeMap().get("postalAddress");
@@ -1598,12 +1594,12 @@ public class UserTestITCase extends Abst
         // 1. create user with LDAP resource, succesfully propagated
         UserTO userTO = getSampleTO("syncope185@syncope.apache.org");
         userTO.getVirtualAttributes().clear();
-        userTO.addResource("resource-ldap");
+        userTO.addResource(RESOURCE_NAME_LDAP);
 
         userTO = createUser(userTO);
         assertNotNull(userTO);
         assertFalse(userTO.getPropagationStatusTOs().isEmpty());
-        assertEquals("resource-ldap", userTO.getPropagationStatusTOs().get(0).getResource());
+        assertEquals(RESOURCE_NAME_LDAP, userTO.getPropagationStatusTOs().get(0).getResource());
         assertEquals(PropagationTaskExecStatus.SUCCESS, userTO.getPropagationStatusTOs().get(0).getStatus());
 
         // 2. delete this user
@@ -1611,7 +1607,7 @@ public class UserTestITCase extends Abst
 
         // 3. try (and fail) to find this user on the external LDAP resource
         try {
-            readUserConnObj("resource-ldap", userTO.getUsername());
+            readUserConnObj(RESOURCE_NAME_LDAP, userTO.getUsername());
             fail("This entry should not be present on this resource");
         } catch (SyncopeClientCompositeErrorException sccee) {
             SyncopeClientException sce = sccee.getException(SyncopeClientExceptionType.NotFound);
@@ -1821,7 +1817,7 @@ public class UserTestITCase extends Abst
         // 1. create user on testdb and testdb2
         UserTO userTO = getUniqueSampleTO("syncope123@apache.org");
         userTO.getResources().clear();
-        userTO.addResource("resource-testdb");
+        userTO.addResource(RESOURCE_NAME_TESTDB);
         userTO.addResource("resource-testdb2");
         try {
             userTO = createUser(userTO);
@@ -1833,13 +1829,13 @@ public class UserTestITCase extends Abst
             return;
         }
         assertNotNull(userTO);
-        assertTrue(userTO.getResources().contains("resource-testdb"));
+        assertTrue(userTO.getResources().contains(RESOURCE_NAME_TESTDB));
         assertTrue(userTO.getResources().contains("resource-testdb2"));
 
         final String pwdOnSyncope = userTO.getPassword();
 
         ConnObjectTO userOnDb =
-                resourceService.getConnector("resource-testdb", AttributableType.USER, userTO.getUsername());
+                resourceService.getConnector(RESOURCE_NAME_TESTDB, AttributableType.USER, userTO.getUsername());
         final AttributeTO pwdOnTestDbAttr = userOnDb.getAttributeMap().get(OperationalAttributes.PASSWORD_NAME);
         assertNotNull(pwdOnTestDbAttr);
         assertNotNull(pwdOnTestDbAttr.getValues());
@@ -1859,7 +1855,7 @@ public class UserTestITCase extends Abst
         userMod.setId(userTO.getId());
         userMod.setPassword(getUUIDString());
         PropagationRequestTO pwdPropRequest = new PropagationRequestTO();
-        pwdPropRequest.addResource("resource-testdb");
+        pwdPropRequest.addResource(RESOURCE_NAME_TESTDB);
         userMod.setPwdPropRequest(pwdPropRequest);
 
         userTO = userService.update(userMod.getId(), userMod);
@@ -1867,13 +1863,13 @@ public class UserTestITCase extends Abst
         // 3a. Chech that only a single propagation took place
         assertNotNull(userTO.getPropagationStatusTOs());
         assertEquals(1, userTO.getPropagationStatusTOs().size());
-        assertEquals("resource-testdb", userTO.getPropagationStatusTOs().iterator().next().getResource());
+        assertEquals(RESOURCE_NAME_TESTDB, userTO.getPropagationStatusTOs().iterator().next().getResource());
 
         // 3b. verify that password hasn't changed on Syncope
         assertEquals(pwdOnSyncope, userTO.getPassword());
 
         // 3c. verify that password *has* changed on testdb
-        userOnDb = resourceService.getConnector("resource-testdb", AttributableType.USER, userTO.getUsername());
+        userOnDb = resourceService.getConnector(RESOURCE_NAME_TESTDB, AttributableType.USER, userTO.getUsername());
         final AttributeTO pwdOnTestDbAttrAfter = userOnDb.getAttributeMap().get(OperationalAttributes.PASSWORD_NAME);
         assertNotNull(pwdOnTestDbAttrAfter);
         assertNotNull(pwdOnTestDbAttrAfter.getValues());
@@ -1944,7 +1940,7 @@ public class UserTestITCase extends Abst
         // 2. update user, assign a propagation primary resource but don't provide any password
         UserMod userMod = new UserMod();
         userMod.setId(userTO.getId());
-        userMod.addResourceToBeAdded("resource-ldap");
+        userMod.addResourceToBeAdded(RESOURCE_NAME_LDAP);
 
         userTO = userService.update(userMod.getId(), userMod);
         assertNotNull(userTO);
@@ -1955,7 +1951,7 @@ public class UserTestITCase extends Abst
         assertEquals(1, props.size());
         PropagationStatusTO prop = props.iterator().next();
         assertNotNull(prop);
-        assertEquals("resource-ldap", prop.getResource());
+        assertEquals(RESOURCE_NAME_LDAP, prop.getResource());
         assertEquals(PropagationTaskExecStatus.SUCCESS, prop.getStatus());
     }