You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2012/03/01 16:09:24 UTC
svn commit: r1295610 [2/2] - in /incubator/syncope/trunk/core/src:
main/java/org/syncope/core/persistence/beans/
main/java/org/syncope/core/persistence/beans/user/
main/java/org/syncope/core/persistence/dao/impl/
main/java/org/syncope/core/propagation/...
Modified: incubator/syncope/trunk/core/src/test/java/org/syncope/core/rest/UserTestITCase.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/test/java/org/syncope/core/rest/UserTestITCase.java?rev=1295610&r1=1295609&r2=1295610&view=diff
==============================================================================
--- incubator/syncope/trunk/core/src/test/java/org/syncope/core/rest/UserTestITCase.java (original)
+++ incubator/syncope/trunk/core/src/test/java/org/syncope/core/rest/UserTestITCase.java Thu Mar 1 15:09:24 2012
@@ -199,10 +199,9 @@ public class UserTestITCase extends Abst
@Test
/*
* This test has been introduced to verify and solve the following issue:
- * http://code.google.com/p/syncope/issues/detail?id=172. Creations of a new
- * user without having a global password policy stored into the local
- * repository used to fail with a null pointer exception. This bug has been
- * fixed introducing a simple control.
+ * http://code.google.com/p/syncope/issues/detail?id=172. Creations of a new user without having a global password
+ * policy stored into the local repository used to fail with a null pointer exception. This bug has been fixed
+ * introducing a simple control.
*/
public void issue172() {
PolicyTO policyTO = restTemplate.getForObject(
@@ -268,8 +267,7 @@ public class UserTestITCase extends Abst
attributeTO.addValue("issue186");
userTO.addAttribute(attributeTO);
- userTO = restTemplate.postForObject(BASE_URL + "user/create",
- userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
assertTrue(userTO.getResources().isEmpty());
@@ -315,8 +313,7 @@ public class UserTestITCase extends Abst
sce = null;
try {
- userTO = restTemplate.postForObject(
- BASE_URL + "user/update", userMod, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
} catch (SyncopeClientCompositeErrorException scce) {
sce = scce.getException(SyncopeClientExceptionType.Propagation);
}
@@ -328,8 +325,7 @@ public class UserTestITCase extends Abst
// 1. create an user wihtout role nor resources
UserTO userTO = getSampleTO("issue147@syncope-idm.org");
- userTO = restTemplate.postForObject(BASE_URL + "user/create",
- userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
assertTrue(userTO.getResources().isEmpty());
@@ -340,8 +336,7 @@ public class UserTestITCase extends Abst
SyncopeClientException sce = null;
try {
- userTO = restTemplate.postForObject(
- BASE_URL + "user/update", userMod, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
} catch (SyncopeClientCompositeErrorException scce) {
sce = scce.getException(
SyncopeClientExceptionType.RequiredValuesMissing);
@@ -350,8 +345,7 @@ public class UserTestITCase extends Abst
// 3. provide password: now update must work
userMod.setPassword("newPassword");
- userTO = restTemplate.postForObject(
- BASE_URL + "user/update", userMod, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
assertNotNull(userTO);
assertEquals(1, userTO.getResources().size());
}
@@ -384,12 +378,10 @@ public class UserTestITCase extends Abst
userTO.addResource("resource-testdb");
- userTO = restTemplate.postForObject(BASE_URL + "user/create",
- userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
assertEquals(1, userTO.getPropagationTOs().size());
- assertTrue(
- userTO.getPropagationTOs().get(0).getStatus().isSuccessful());
+ assertTrue(userTO.getPropagationTOs().get(0).getStatus().isSuccessful());
}
@Test(expected = SyncopeClientCompositeErrorException.class)
@@ -397,8 +389,7 @@ public class UserTestITCase extends Abst
UserTO userTO = getSampleTO("invalidpasswd@syncope-idm.org");
userTO.setPassword("pass");
- restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
}
@Test(expected = SyncopeClientCompositeErrorException.class)
@@ -411,8 +402,7 @@ public class UserTestITCase extends Abst
userTO.addMembership(membershipTO);
- restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
}
@Test(expected = SyncopeClientCompositeErrorException.class)
@@ -422,11 +412,9 @@ public class UserTestITCase extends Abst
// configured to be minLength=16
userTO.setPassword("password1");
- userTO.setResources(
- Collections.singleton("ws-target-resource-nopropagation"));
+ userTO.setResources(Collections.singleton("ws-target-resource-nopropagation"));
- restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
}
@Test(expected = SyncopeClientCompositeErrorException.class)
@@ -441,8 +429,7 @@ public class UserTestITCase extends Abst
userTO.addMembership(membership);
- restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
}
@Test(expected = SyncopeClientCompositeErrorException.class)
@@ -454,16 +441,14 @@ public class UserTestITCase extends Abst
UserTO newUserTO = new UserTO();
newUserTO.addAttribute(attributeTO);
- restTemplate.postForObject(BASE_URL + "user/create",
- newUserTO, UserTO.class);
+ restTemplate.postForObject(BASE_URL + "user/create", newUserTO, UserTO.class);
}
@Test
public void create() {
// get task list
List<PropagationTaskTO> tasks = Arrays.asList(
- restTemplate.getForObject(
- BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
+ restTemplate.getForObject(BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
assertNotNull(tasks);
assertFalse(tasks.isEmpty());
@@ -475,9 +460,9 @@ public class UserTestITCase extends Abst
maxId = task.getId();
}
}
- PropagationTaskTO taskTO = restTemplate.getForObject(
- BASE_URL + "task/read/{taskId}", PropagationTaskTO.class,
- maxId);
+ PropagationTaskTO taskTO =
+ restTemplate.getForObject(BASE_URL + "task/read/{taskId}", PropagationTaskTO.class, maxId);
+
assertNotNull(taskTO);
int maxTaskExecutions = taskTO.getExecutions().size();
@@ -507,35 +492,25 @@ public class UserTestITCase extends Abst
userTO.addAttribute(nullValueAttrTO);
// 1. create user
- UserTO newUserTO = restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ UserTO newUserTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(newUserTO);
- assertFalse(newUserTO.getAttributes().contains(
- attrWithInvalidSchemaTO));
+ assertFalse(newUserTO.getAttributes().contains(attrWithInvalidSchemaTO));
// check for changePwdDate
assertNotNull(newUserTO.getCreationDate());
// 2. check for virtual attribute value
- newUserTO = restTemplate.getForObject(
- BASE_URL + "user/read/{userId}.json",
- UserTO.class, newUserTO.getId());
+ newUserTO = restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, newUserTO.getId());
assertNotNull(newUserTO);
assertNotNull(newUserTO.getVirtualAttributeMap());
- assertNotNull(newUserTO.getVirtualAttributeMap().get("virtualdata").
- getValues());
- assertFalse(newUserTO.getVirtualAttributeMap().get("virtualdata").
- getValues().isEmpty());
- assertEquals("virtualvalue",
- newUserTO.getVirtualAttributeMap().get("virtualdata").
- getValues().get(0));
+ assertNotNull(newUserTO.getVirtualAttributeMap().get("virtualdata").getValues());
+ assertFalse(newUserTO.getVirtualAttributeMap().get("virtualdata").getValues().isEmpty());
+ assertEquals("virtualvalue", newUserTO.getVirtualAttributeMap().get("virtualdata").getValues().get(0));
// get the new task list
- tasks = Arrays.asList(
- restTemplate.getForObject(
- BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
+ tasks = Arrays.asList(restTemplate.getForObject(BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
assertNotNull(tasks);
assertFalse(tasks.isEmpty());
@@ -554,21 +529,18 @@ public class UserTestITCase extends Abst
assertEquals(newMaxId, maxId);
// get last task
- taskTO = restTemplate.getForObject(
- BASE_URL + "task/read/{taskId}", PropagationTaskTO.class,
- newMaxId);
+ taskTO = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", PropagationTaskTO.class, newMaxId);
assertNotNull(taskTO);
assertEquals(maxTaskExecutions, taskTO.getExecutions().size());
// 3. verify password
Boolean verify = restTemplate.getForObject(
- BASE_URL + "user/verifyPassword/{userId}?password=password123",
- Boolean.class, newUserTO.getId());
+ BASE_URL + "user/verifyPassword/{userId}?password=password123", Boolean.class, newUserTO.getId());
assertTrue(verify);
+
verify = restTemplate.getForObject(
- BASE_URL + "user/verifyPassword/{userId}?password=passwordXX",
- Boolean.class, newUserTO.getId());
+ BASE_URL + "user/verifyPassword/{userId}?password=passwordXX", Boolean.class, newUserTO.getId());
assertFalse(verify);
// 4. try (and fail) to create another user with same (unique) values
@@ -582,11 +554,9 @@ public class UserTestITCase extends Abst
SyncopeClientException sce = null;
try {
- restTemplate.postForObject(BASE_URL + "user/create",
- userTO, UserTO.class);
+ restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
} catch (SyncopeClientCompositeErrorException e) {
- sce = e.getException(
- SyncopeClientExceptionType.DataIntegrityViolation);
+ sce = e.getException(SyncopeClientExceptionType.DataIntegrityViolation);
}
assertNotNull(sce);
}
@@ -612,14 +582,12 @@ public class UserTestITCase extends Abst
SyncopeClientCompositeErrorException ex = null;
try {
// 1. create user without type (mandatory by UserSchema)
- restTemplate.postForObject(BASE_URL + "user/create",
- userTO, UserTO.class);
+ restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
} catch (SyncopeClientCompositeErrorException e) {
ex = e;
}
assertNotNull(ex);
- assertNotNull(ex.getException(
- SyncopeClientExceptionType.RequiredValuesMissing));
+ assertNotNull(ex.getException(SyncopeClientExceptionType.RequiredValuesMissing));
AttributeTO fType = new AttributeTO();
fType.setSchema("type");
@@ -637,14 +605,12 @@ public class UserTestITCase extends Abst
// 2. create user without surname (mandatory when type == 'F')
ex = null;
try {
- restTemplate.postForObject(BASE_URL + "user/create",
- userTO, UserTO.class);
+ restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
} catch (SyncopeClientCompositeErrorException e) {
ex = e;
}
assertNotNull(ex);
- assertNotNull(ex.getException(
- SyncopeClientExceptionType.RequiredValuesMissing));
+ assertNotNull(ex.getException(SyncopeClientExceptionType.RequiredValuesMissing));
}
@Test
@@ -657,8 +623,7 @@ public class UserTestITCase extends Abst
userTO.addMembership(membershipTO);
// 1. create user with role 9
- userTO = restTemplate.postForObject(BASE_URL + "user/create",
- userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
assertEquals(1, userTO.getMemberships().size());
assertEquals(9, userTO.getMemberships().get(0).getRoleId());
@@ -666,8 +631,7 @@ public class UserTestITCase extends Abst
// 2. request if there is any pending task for user just created
WorkflowFormTO form = restTemplate.getForObject(
- BASE_URL + "user/workflow/form/{userId}",
- WorkflowFormTO.class, userTO.getId());
+ BASE_URL + "user/workflow/form/{userId}", WorkflowFormTO.class, userTO.getId());
assertNotNull(form);
assertNotNull(form.getTaskId());
assertNull(form.getOwner());
@@ -675,32 +639,25 @@ public class UserTestITCase extends Abst
// 3. claim task from user1, not in role 7 (designated for
// approval in workflow definition): fail
PreemptiveAuthHttpRequestFactory requestFactory =
- ((PreemptiveAuthHttpRequestFactory) restTemplate.
- getRequestFactory());
- ((DefaultHttpClient) requestFactory.getHttpClient()).
- getCredentialsProvider().setCredentials(
- requestFactory.getAuthScope(),
- new UsernamePasswordCredentials("user1", "password"));
+ ((PreemptiveAuthHttpRequestFactory) restTemplate.getRequestFactory());
+ ((DefaultHttpClient) requestFactory.getHttpClient()).getCredentialsProvider().setCredentials(
+ requestFactory.getAuthScope(), new UsernamePasswordCredentials("user1", "password"));
SyncopeClientException sce = null;
try {
restTemplate.getForObject(
- BASE_URL + "user/workflow/form/claim/{taskId}",
- WorkflowFormTO.class, form.getTaskId());
+ BASE_URL + "user/workflow/form/claim/{taskId}", WorkflowFormTO.class, form.getTaskId());
} catch (SyncopeClientCompositeErrorException scce) {
sce = scce.getException(SyncopeClientExceptionType.Workflow);
}
assertNotNull(sce);
// 4. claim task from user4, in to role 7
- ((DefaultHttpClient) requestFactory.getHttpClient()).
- getCredentialsProvider().setCredentials(
- requestFactory.getAuthScope(),
- new UsernamePasswordCredentials("user4", "password"));
+ ((DefaultHttpClient) requestFactory.getHttpClient()).getCredentialsProvider().setCredentials(
+ requestFactory.getAuthScope(), new UsernamePasswordCredentials("user4", "password"));
form = restTemplate.getForObject(
- BASE_URL + "user/workflow/form/claim/{taskId}",
- WorkflowFormTO.class, form.getTaskId());
+ BASE_URL + "user/workflow/form/claim/{taskId}", WorkflowFormTO.class, form.getTaskId());
assertNotNull(form);
assertNotNull(form.getTaskId());
assertNotNull(form.getOwner());
@@ -710,9 +667,7 @@ public class UserTestITCase extends Abst
props.get("approve").setValue(Boolean.FALSE.toString());
props.get("rejectReason").setValue("I don't like him.");
form.setProperties(props.values());
- userTO = restTemplate.postForObject(
- BASE_URL + "user/workflow/form/submit",
- form, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/workflow/form/submit", form, UserTO.class);
assertNotNull(userTO);
assertEquals("rejected", userTO.getStatus());
@@ -733,21 +688,18 @@ public class UserTestITCase extends Abst
userTO.addMembership(membershipTO);
// 1. create user with role 9 (and verify that no propagation occurred)
- userTO = restTemplate.postForObject(BASE_URL + "user/create",
- userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
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-testdb"), userTO.getResources());
assertTrue(userTO.getPropagationTOs().isEmpty());
Exception exception = null;
try {
- jdbcTemplate.queryForInt(
- "SELECT id FROM test WHERE id=?", userTO.getUsername());
+ jdbcTemplate.queryForInt("SELECT id FROM test WHERE id=?", userTO.getUsername());
} catch (EmptyResultDataAccessException e) {
exception = e;
}
@@ -755,16 +707,14 @@ public class UserTestITCase extends Abst
// 2. request if there is any pending task for user just created
WorkflowFormTO form = restTemplate.getForObject(
- BASE_URL + "user/workflow/form/{userId}",
- WorkflowFormTO.class, userTO.getId());
+ BASE_URL + "user/workflow/form/{userId}", WorkflowFormTO.class, userTO.getId());
assertNotNull(form);
assertNotNull(form.getTaskId());
assertNull(form.getOwner());
// 4. claim task (from admin)
form = restTemplate.getForObject(
- BASE_URL + "user/workflow/form/claim/{taskId}",
- WorkflowFormTO.class, form.getTaskId());
+ BASE_URL + "user/workflow/form/claim/{taskId}", WorkflowFormTO.class, form.getTaskId());
assertNotNull(form);
assertNotNull(form.getTaskId());
assertNotNull(form.getOwner());
@@ -773,19 +723,15 @@ public class UserTestITCase extends Abst
Map<String, WorkflowFormPropertyTO> props = form.getPropertiesAsMap();
props.get("approve").setValue(Boolean.TRUE.toString());
form.setProperties(props.values());
- userTO = restTemplate.postForObject(
- BASE_URL + "user/workflow/form/submit", form, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/workflow/form/submit", form, UserTO.class);
assertNotNull(userTO);
assertEquals("active", userTO.getStatus());
- assertEquals(Collections.singleton("resource-testdb"),
- userTO.getResources());
+ assertEquals(Collections.singleton("resource-testdb"), userTO.getResources());
exception = null;
try {
- String username = jdbcTemplate.queryForObject(
- "SELECT id FROM test WHERE id=?",
- String.class,
- userTO.getUsername());
+ final String username =
+ jdbcTemplate.queryForObject("SELECT id FROM test WHERE id=?", String.class, userTO.getUsername());
assertEquals(userTO.getUsername(), username);
} catch (EmptyResultDataAccessException e) {
exception = e;
@@ -797,16 +743,14 @@ public class UserTestITCase extends Abst
userMod.setId(userTO.getId());
userMod.setPassword("anotherPassword123");
- userTO = restTemplate.postForObject(BASE_URL + "user/update",
- userMod, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
assertNotNull(userTO);
}
@Test
public void delete() {
try {
- restTemplate.getForObject(
- BASE_URL + "user/delete/{userId}", UserTO.class, 0);
+ restTemplate.getForObject(BASE_URL + "user/delete/{userId}", UserTO.class, 0);
} catch (HttpStatusCodeException e) {
assertEquals(HttpStatus.NOT_FOUND, e.getStatusCode());
}
@@ -816,13 +760,11 @@ public class UserTestITCase extends Abst
// specify a propagation
userTO.addResource("resource-testdb");
- userTO = restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
long id = userTO.getId();
- userTO = restTemplate.getForObject(
- BASE_URL + "user/delete/{userId}", UserTO.class, id);
+ userTO = restTemplate.getForObject(BASE_URL + "user/delete/{userId}", UserTO.class, id);
assertNotNull(userTO);
assertEquals(id, userTO.getId());
@@ -830,12 +772,10 @@ public class UserTestITCase extends Abst
// check for propagation result
assertFalse(userTO.getPropagationTOs().isEmpty());
- assertTrue(
- userTO.getPropagationTOs().get(0).getStatus().isSuccessful());
+ assertTrue(userTO.getPropagationTOs().get(0).getStatus().isSuccessful());
try {
- restTemplate.getForObject(BASE_URL + "user/read/{userId}.json",
- UserTO.class, userTO.getId());
+ restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, userTO.getId());
} catch (HttpStatusCodeException e) {
assertEquals(HttpStatus.NOT_FOUND, e.getStatusCode());
}
@@ -843,8 +783,7 @@ public class UserTestITCase extends Abst
@Test
public void count() {
- Integer count = restTemplate.getForObject(
- BASE_URL + "user/count.json", Integer.class);
+ Integer count = restTemplate.getForObject(BASE_URL + "user/count.json", Integer.class);
assertNotNull(count);
assertTrue(count > 0);
}
@@ -855,17 +794,14 @@ public class UserTestITCase extends Abst
isNullCond.setSchema("loginDate");
NodeCond searchCond = NodeCond.getLeafCond(isNullCond);
- Integer count = restTemplate.postForObject(
- BASE_URL + "user/search/count.json", searchCond, Integer.class);
+ Integer count = restTemplate.postForObject(BASE_URL + "user/search/count.json", searchCond, Integer.class);
assertNotNull(count);
assertTrue(count > 0);
}
@Test
public void list() {
- List<UserTO> users = Arrays.asList(
- restTemplate.getForObject(
- BASE_URL + "user/list.json", UserTO[].class));
+ List<UserTO> users = Arrays.asList(restTemplate.getForObject(BASE_URL + "user/list.json", UserTO[].class));
assertNotNull(users);
assertFalse(users.isEmpty());
for (UserTO user : users) {
@@ -875,9 +811,8 @@ public class UserTestITCase extends Abst
@Test
public void paginatedList() {
- List<UserTO> users = Arrays.asList(restTemplate.getForObject(
- BASE_URL + "user/list/{page}/{size}.json",
- UserTO[].class, 1, 2));
+ List<UserTO> users = Arrays.asList(
+ restTemplate.getForObject(BASE_URL + "user/list/{page}/{size}.json", UserTO[].class, 1, 2));
assertNotNull(users);
assertFalse(users.isEmpty());
@@ -887,17 +822,15 @@ public class UserTestITCase extends Abst
assertNotNull(user);
}
- users = Arrays.asList(restTemplate.getForObject(
- BASE_URL + "user/list/{page}/{size}.json",
- UserTO[].class, 2, 2));
+ users = Arrays.asList(
+ restTemplate.getForObject(BASE_URL + "user/list/{page}/{size}.json", UserTO[].class, 2, 2));
assertNotNull(users);
assertFalse(users.isEmpty());
assertEquals(2, users.size());
- users = Arrays.asList(restTemplate.getForObject(
- BASE_URL + "user/list/{page}/{size}.json",
- UserTO[].class, 100, 2));
+ users = Arrays.asList(
+ restTemplate.getForObject(BASE_URL + "user/list/{page}/{size}.json", UserTO[].class, 100, 2));
assertNotNull(users);
assertTrue(users.isEmpty());
@@ -905,8 +838,7 @@ public class UserTestITCase extends Abst
@Test
public void read() {
- UserTO userTO = restTemplate.getForObject(
- BASE_URL + "user/read/{userId}.json", UserTO.class, 1);
+ UserTO userTO = restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, 1);
assertNotNull(userTO);
assertNotNull(userTO.getAttributes());
@@ -916,26 +848,21 @@ public class UserTestITCase extends Abst
@Test
public void search() {
// LIKE
- AttributeCond fullnameLeafCond1 =
- new AttributeCond(AttributeCond.Type.LIKE);
+ AttributeCond fullnameLeafCond1 = new AttributeCond(AttributeCond.Type.LIKE);
fullnameLeafCond1.setSchema("fullname");
fullnameLeafCond1.setExpression("%o%");
- AttributeCond fullnameLeafCond2 =
- new AttributeCond(AttributeCond.Type.LIKE);
+ AttributeCond fullnameLeafCond2 = new AttributeCond(AttributeCond.Type.LIKE);
fullnameLeafCond2.setSchema("fullname");
fullnameLeafCond2.setExpression("%i%");
- NodeCond searchCondition = NodeCond.getAndCond(
- NodeCond.getLeafCond(fullnameLeafCond1),
- NodeCond.getLeafCond(fullnameLeafCond2));
+ NodeCond searchCondition =
+ NodeCond.getAndCond(NodeCond.getLeafCond(fullnameLeafCond1), NodeCond.getLeafCond(fullnameLeafCond2));
assertTrue(searchCondition.checkValidity());
List<UserTO> matchedUsers = Arrays.asList(
- restTemplate.postForObject(
- BASE_URL + "user/search",
- searchCondition, UserTO[].class));
+ restTemplate.postForObject(BASE_URL + "user/search", searchCondition, UserTO[].class));
assertNotNull(matchedUsers);
assertFalse(matchedUsers.isEmpty());
for (UserTO user : matchedUsers) {
@@ -948,10 +875,10 @@ public class UserTestITCase extends Abst
searchCondition = NodeCond.getLeafCond(isNullCond);
matchedUsers = Arrays.asList(
- restTemplate.postForObject(BASE_URL + "user/search",
- searchCondition, UserTO[].class));
+ restTemplate.postForObject(BASE_URL + "user/search", searchCondition, UserTO[].class));
assertNotNull(matchedUsers);
assertFalse(matchedUsers.isEmpty());
+
Set<Long> userIds = new HashSet<Long>(matchedUsers.size());
for (UserTO user : matchedUsers) {
userIds.add(user.getId());
@@ -962,26 +889,21 @@ public class UserTestITCase extends Abst
@Test
public void searchByUsernameAndId() {
- final SyncopeUserCond usernameLeafCond =
- new SyncopeUserCond(SyncopeUserCond.Type.EQ);
+ final SyncopeUserCond usernameLeafCond = new SyncopeUserCond(SyncopeUserCond.Type.EQ);
usernameLeafCond.setSchema("username");
usernameLeafCond.setExpression("user1");
- final SyncopeUserCond idRightCond =
- new SyncopeUserCond(SyncopeUserCond.Type.LT);
+ final SyncopeUserCond idRightCond = new SyncopeUserCond(SyncopeUserCond.Type.LT);
idRightCond.setSchema("id");
idRightCond.setExpression("2");
final NodeCond searchCondition = NodeCond.getAndCond(
- NodeCond.getLeafCond(usernameLeafCond),
- NodeCond.getLeafCond(idRightCond));
+ NodeCond.getLeafCond(usernameLeafCond), NodeCond.getLeafCond(idRightCond));
assertTrue(searchCondition.checkValidity());
final List<UserTO> matchingUsers = Arrays.asList(
- restTemplate.postForObject(
- BASE_URL + "user/search",
- searchCondition, UserTO[].class));
+ restTemplate.postForObject(BASE_URL + "user/search", searchCondition, UserTO[].class));
assertNotNull(matchingUsers);
assertEquals(1, matchingUsers.size());
@@ -997,16 +919,12 @@ public class UserTestITCase extends Abst
ResourceCond ws1 = new ResourceCond();
ws1.setResourceName("ws-target-resource-list-mappings-2");
- NodeCond searchCondition = NodeCond.getAndCond(
- NodeCond.getNotLeafCond(ws2),
- NodeCond.getLeafCond(ws1));
+ NodeCond searchCondition = NodeCond.getAndCond(NodeCond.getNotLeafCond(ws2), NodeCond.getLeafCond(ws1));
assertTrue(searchCondition.checkValidity());
List<UserTO> matchedUsers = Arrays.asList(
- restTemplate.postForObject(
- BASE_URL + "user/search",
- searchCondition, UserTO[].class));
+ restTemplate.postForObject(BASE_URL + "user/search", searchCondition, UserTO[].class));
assertNotNull(matchedUsers);
assertFalse(matchedUsers.isEmpty());
@@ -1022,25 +940,21 @@ public class UserTestITCase extends Abst
@Test
public void paginatedSearch() {
// LIKE
- AttributeCond fullnameLeafCond1 =
- new AttributeCond(AttributeCond.Type.LIKE);
+ AttributeCond fullnameLeafCond1 = new AttributeCond(AttributeCond.Type.LIKE);
fullnameLeafCond1.setSchema("fullname");
fullnameLeafCond1.setExpression("%o%");
- AttributeCond fullnameLeafCond2 =
- new AttributeCond(AttributeCond.Type.LIKE);
+ AttributeCond fullnameLeafCond2 = new AttributeCond(AttributeCond.Type.LIKE);
fullnameLeafCond2.setSchema("fullname");
fullnameLeafCond2.setExpression("%i%");
- NodeCond searchCondition = NodeCond.getAndCond(
- NodeCond.getLeafCond(fullnameLeafCond1),
- NodeCond.getLeafCond(fullnameLeafCond2));
+ NodeCond searchCondition =
+ NodeCond.getAndCond(NodeCond.getLeafCond(fullnameLeafCond1), NodeCond.getLeafCond(fullnameLeafCond2));
assertTrue(searchCondition.checkValidity());
List<UserTO> matchedUsers = Arrays.asList(restTemplate.postForObject(
- BASE_URL + "user/search/{page}/{size}",
- searchCondition, UserTO[].class, 1, 2));
+ BASE_URL + "user/search/{page}/{size}", searchCondition, UserTO[].class, 1, 2));
assertNotNull(matchedUsers);
assertFalse(matchedUsers.isEmpty());
@@ -1054,8 +968,7 @@ public class UserTestITCase extends Abst
searchCondition = NodeCond.getLeafCond(isNullCond);
matchedUsers = Arrays.asList(restTemplate.postForObject(
- BASE_URL + "user/search/{page}/{size}",
- searchCondition, UserTO[].class, 1, 2));
+ BASE_URL + "user/search/{page}/{size}", searchCondition, UserTO[].class, 1, 2));
assertNotNull(matchedUsers);
assertFalse(matchedUsers.isEmpty());
@@ -1070,8 +983,7 @@ public class UserTestITCase extends Abst
public void updateWithouPassword() {
UserTO userTO = getSampleTO("updatewithout@password.com");
- userTO = restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
@@ -1079,8 +991,7 @@ public class UserTestITCase extends Abst
userMod.setId(userTO.getId());
userMod.addDerivedAttributeToBeRemoved("cn");
- userTO = restTemplate.postForObject(
- BASE_URL + "user/update", userMod, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
assertNotNull(userTO);
assertNotNull(userTO.getDerivedAttributeMap());
@@ -1091,32 +1002,28 @@ public class UserTestITCase extends Abst
public void updateInvalidPassword() {
UserTO userTO = getSampleTO("updateinvalid@password.com");
- userTO = restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
UserMod userMod = new UserMod();
userMod.setId(userTO.getId());
userMod.setPassword("pass");
- restTemplate.postForObject(
- BASE_URL + "user/update", userMod, UserTO.class);
+ restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
}
@Test(expected = SyncopeClientCompositeErrorException.class)
public void updateSamePassword() {
UserTO userTO = getSampleTO("updatesame@password.com");
- userTO = restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
UserMod userMod = new UserMod();
userMod.setId(userTO.getId());
userMod.setPassword("password123");
- restTemplate.postForObject(
- BASE_URL + "user/update", userMod, UserTO.class);
+ restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
}
@Test
@@ -1131,8 +1038,7 @@ public class UserTestITCase extends Abst
membershipTO.addAttribute(membershipAttr);
userTO.addMembership(membershipTO);
- userTO = restTemplate.postForObject(BASE_URL + "user/create",
- userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertFalse(userTO.getDerivedAttributes().isEmpty());
assertEquals(1, userTO.getMemberships().size());
@@ -1163,11 +1069,9 @@ public class UserTestITCase extends Abst
userMod.addDerivedAttributeToBeAdded("cn");
userMod.addMembershipToBeAdded(membershipMod);
- userMod.addMembershipToBeRemoved(
- userTO.getMemberships().iterator().next().getId());
+ userMod.addMembershipToBeRemoved(userTO.getMemberships().iterator().next().getId());
- userTO = restTemplate.postForObject(BASE_URL + "user/update",
- userMod, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
assertNotNull(userTO);
SyncopeUser passwordTestUser = new SyncopeUser();
@@ -1175,23 +1079,20 @@ public class UserTestITCase extends Abst
assertEquals(passwordTestUser.getPassword(), userTO.getPassword());
assertEquals(1, userTO.getMemberships().size());
- assertEquals(1, userTO.getMemberships().iterator().next().
- getAttributes().size());
+ assertEquals(1, userTO.getMemberships().iterator().next().getAttributes().size());
assertFalse(userTO.getDerivedAttributes().isEmpty());
+
boolean userIdFound = false;
boolean fullnameFound = false;
+
for (AttributeTO attributeTO : userTO.getAttributes()) {
if ("userId".equals(attributeTO.getSchema())) {
userIdFound = true;
-
- assertEquals(Collections.singletonList("t.w@spre.net"),
- attributeTO.getValues());
+ assertEquals(Collections.singletonList("t.w@spre.net"), attributeTO.getValues());
}
if ("fullname".equals(attributeTO.getSchema())) {
fullnameFound = true;
-
- assertEquals(Collections.singletonList("g.h@t.com"),
- attributeTO.getValues());
+ assertEquals(Collections.singletonList("g.h@t.com"), attributeTO.getValues());
}
}
assertTrue(userIdFound);
@@ -1201,8 +1102,7 @@ public class UserTestITCase extends Abst
@Test
public void updatePasswordOnly() {
List<PropagationTaskTO> beforeTasks = Arrays.asList(
- restTemplate.getForObject(
- BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
+ restTemplate.getForObject(BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
assertNotNull(beforeTasks);
assertFalse(beforeTasks.isEmpty());
@@ -1215,15 +1115,13 @@ public class UserTestITCase extends Abst
membershipTO.addAttribute(membershipAttr);
userTO.addMembership(membershipTO);
- userTO = restTemplate.postForObject(BASE_URL + "user/create",
- userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
UserMod userMod = new UserMod();
userMod.setId(userTO.getId());
userMod.setPassword("newPassword");
- userTO = restTemplate.postForObject(BASE_URL + "user/update",
- userMod, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
// check for changePwdDate
assertNotNull(userTO.getChangePwdDate());
@@ -1233,8 +1131,7 @@ public class UserTestITCase extends Abst
assertEquals(passwordTestUser.getPassword(), userTO.getPassword());
List<PropagationTaskTO> afterTasks = Arrays.asList(
- restTemplate.getForObject(
- BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
+ restTemplate.getForObject(BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
assertNotNull(afterTasks);
assertFalse(afterTasks.isEmpty());
@@ -1245,8 +1142,7 @@ public class UserTestITCase extends Abst
public void verifyTaskRegistration() {
// get task list
List<PropagationTaskTO> tasks = Arrays.asList(
- restTemplate.getForObject(
- BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
+ restTemplate.getForObject(BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
assertNotNull(tasks);
assertFalse(tasks.isEmpty());
@@ -1271,14 +1167,11 @@ public class UserTestITCase extends Abst
userTO.addMembership(membershipTO);
// 1. create user
- userTO = restTemplate.postForObject(BASE_URL + "user/create",
- userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
// get the new task list
- tasks = Arrays.asList(
- restTemplate.getForObject(
- BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
+ tasks = Arrays.asList(restTemplate.getForObject(BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
assertNotNull(tasks);
assertFalse(tasks.isEmpty());
@@ -1307,15 +1200,13 @@ public class UserTestITCase extends Abst
attributeMod.addValueToBeAdded("surname");
userMod.addAttributeToBeUpdated(attributeMod);
- userTO = restTemplate.postForObject(
- BASE_URL + "user/update", userMod, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
assertNotNull(userTO);
// get the new task list
tasks = Arrays.asList(
- restTemplate.getForObject(
- BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
+ restTemplate.getForObject(BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
// get max task id
maxId = newMaxId;
@@ -1333,13 +1224,11 @@ public class UserTestITCase extends Abst
// --------------------------------------
// Delete operation
// --------------------------------------
- restTemplate.getForObject(BASE_URL + "user/delete/{userId}",
- UserTO.class, userTO.getId());
+ restTemplate.getForObject(BASE_URL + "user/delete/{userId}", UserTO.class, userTO.getId());
// get the new task list
tasks = Arrays.asList(
- restTemplate.getForObject(
- BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
+ restTemplate.getForObject(BASE_URL + "task/propagation/list", PropagationTaskTO[].class));
// get max task id
maxId = newMaxId;
@@ -1364,20 +1253,17 @@ public class UserTestITCase extends Abst
membershipTO.setRoleId(7L);
userTO.addMembership(membershipTO);
- userTO = restTemplate.postForObject(BASE_URL + "user/create",
- userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
assertEquals("active", userTO.getStatus());
- userTO = restTemplate.getForObject(
- BASE_URL + "user/suspend/" + userTO.getId(), UserTO.class);
+ userTO = restTemplate.getForObject(BASE_URL + "user/suspend/" + userTO.getId(), UserTO.class);
assertNotNull(userTO);
assertEquals("suspended", userTO.getStatus());
- userTO = restTemplate.getForObject(
- BASE_URL + "user/reactivate/" + userTO.getId(), UserTO.class);
+ userTO = restTemplate.getForObject(BASE_URL + "user/reactivate/" + userTO.getId(), UserTO.class);
assertNotNull(userTO);
assertEquals("active", userTO.getStatus());
@@ -1391,21 +1277,18 @@ public class UserTestITCase extends Abst
userTO.getResources().clear();
ResourceTO dbTable = restTemplate.getForObject(
- BASE_URL + "/resource/read/{resourceName}.json",
- ResourceTO.class, "resource-testdb");
+ BASE_URL + "/resource/read/{resourceName}.json", ResourceTO.class, "resource-testdb");
assertNotNull(dbTable);
userTO.addResource(dbTable.getName());
ResourceTO ldap = restTemplate.getForObject(
- BASE_URL + "/resource/read/{resourceName}.json",
- ResourceTO.class, "resource-ldap");
+ BASE_URL + "/resource/read/{resourceName}.json", ResourceTO.class, "resource-ldap");
assertNotNull(ldap);
userTO.addResource(ldap.getName());
- userTO = restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
assertEquals("active", userTO.getStatus());
@@ -1414,9 +1297,7 @@ public class UserTestITCase extends Abst
+ "&resourceNames=" + ldap.getName()
+ "&performLocally=true"; // check also performLocally
- userTO = restTemplate.getForObject(
- BASE_URL + "user/suspend/" + userTO.getId() + query,
- UserTO.class);
+ userTO = restTemplate.getForObject(BASE_URL + "user/suspend/" + userTO.getId() + query, UserTO.class);
assertNotNull(userTO);
assertEquals("suspended", userTO.getStatus());
@@ -1425,17 +1306,16 @@ public class UserTestITCase extends Abst
assertNotNull(dbTableUID);
ConnObjectTO connObjectTO = restTemplate.getForObject(
- BASE_URL + "/resource/{resourceName}/read/{objectId}.json",
- ConnObjectTO.class, dbTable.getName(), dbTableUID);
+ BASE_URL + "/resource/{resourceName}/read/{objectId}.json", ConnObjectTO.class, dbTable.getName(),
+ dbTableUID);
- assertFalse(Boolean.parseBoolean(connObjectTO.getAttributeMap().
- get(OperationalAttributes.ENABLE_NAME).getValues().get(0)));
+ assertFalse(Boolean.parseBoolean(
+ connObjectTO.getAttributeMap().get(OperationalAttributes.ENABLE_NAME).getValues().get(0)));
String ldapUID = userTO.getUsername();
assertNotNull(ldapUID);
- connObjectTO = restTemplate.getForObject(
- BASE_URL + "/resource/{resourceName}/read/{objectId}.json",
+ connObjectTO = restTemplate.getForObject(BASE_URL + "/resource/{resourceName}/read/{objectId}.json",
ConnObjectTO.class, ldap.getName(), ldapUID);
assertNotNull(connObjectTO);
@@ -1443,36 +1323,29 @@ public class UserTestITCase extends Abst
query = "?resourceNames=" + ldap.getName()
+ "&performLocally=false"; // check also performLocally
- userTO = restTemplate.getForObject(
- BASE_URL + "user/reactivate/" + userTO.getId() + query,
- UserTO.class);
+ userTO = restTemplate.getForObject(BASE_URL + "user/reactivate/" + userTO.getId() + query, UserTO.class);
assertNotNull(userTO);
assertEquals("suspended", userTO.getStatus());
- connObjectTO = restTemplate.getForObject(
- BASE_URL + "/resource/{resourceName}/read/{objectId}.json",
+ connObjectTO = restTemplate.getForObject(BASE_URL + "/resource/{resourceName}/read/{objectId}.json",
ConnObjectTO.class, dbTable.getName(), dbTableUID);
- assertFalse(Boolean.parseBoolean(connObjectTO.getAttributeMap().
- get(OperationalAttributes.ENABLE_NAME).getValues().get(0)));
+ assertFalse(Boolean.parseBoolean(
+ connObjectTO.getAttributeMap().get(OperationalAttributes.ENABLE_NAME).getValues().get(0)));
- query = "?resourceNames=" + dbTable.getName()
- + "&performLocally=true"; // check also performLocally
+ query = "?resourceNames=" + dbTable.getName() + "&performLocally=true"; // check also performLocally
- userTO = restTemplate.getForObject(
- BASE_URL + "user/reactivate/" + userTO.getId() + query,
- UserTO.class);
+ userTO = restTemplate.getForObject(BASE_URL + "user/reactivate/" + userTO.getId() + query, UserTO.class);
assertNotNull(userTO);
assertEquals("active", userTO.getStatus());
- connObjectTO = restTemplate.getForObject(
- BASE_URL + "/resource/{resourceName}/read/{objectId}.json",
+ connObjectTO = restTemplate.getForObject(BASE_URL + "/resource/{resourceName}/read/{objectId}.json",
ConnObjectTO.class, dbTable.getName(), dbTableUID);
- assertTrue(Boolean.parseBoolean(connObjectTO.getAttributeMap().
- get(OperationalAttributes.ENABLE_NAME).getValues().get(0)));
+ assertTrue(Boolean.parseBoolean(
+ connObjectTO.getAttributeMap().get(OperationalAttributes.ENABLE_NAME).getValues().get(0)));
}
@Test(expected = EmptyResultDataAccessException.class)
@@ -1480,16 +1353,13 @@ public class UserTestITCase extends Abst
UserTO userTO = getSampleTO("issue213@syncope-idm.org");
userTO.addResource("resource-testdb");
- userTO = restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
- String username = jdbcTemplate.queryForObject(
- "SELECT id FROM test WHERE id=?",
- String.class,
- userTO.getUsername());
+ String username =
+ jdbcTemplate.queryForObject("SELECT id FROM test WHERE id=?", String.class, userTO.getUsername());
assertEquals(userTO.getUsername(), username);
@@ -1498,15 +1368,11 @@ public class UserTestITCase extends Abst
userMod.setId(userTO.getId());
userMod.addResourceToBeRemoved("resource-testdb");
- userTO = restTemplate.postForObject(BASE_URL + "user/update",
- userMod, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
assertTrue(userTO.getResources().isEmpty());
- jdbcTemplate.queryForObject(
- "SELECT id FROM test WHERE id=?",
- String.class,
- userTO.getUsername());
+ jdbcTemplate.queryForObject("SELECT id FROM test WHERE id=?", String.class, userTO.getUsername());
}
@Test
@@ -1514,23 +1380,19 @@ public class UserTestITCase extends Abst
UserTO userTO = getSampleTO("issue234@syncope-idm.org");
userTO.addResource("resource-ldap");
- userTO = restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
UserMod userMod = new UserMod();
userMod.setId(userTO.getId());
- userMod.setUsername(
- "1" + userTO.getUsername());
+ userMod.setUsername("1" + userTO.getUsername());
- userTO = restTemplate.postForObject(BASE_URL + "user/update",
- userMod, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
assertNotNull(userTO);
- assertEquals(
- "1issue234@syncope-idm.org", userTO.getUsername());
+ assertEquals("1issue234@syncope-idm.org", userTO.getUsername());
}
@Test
@@ -1540,23 +1402,19 @@ public class UserTestITCase extends Abst
// be sure to remove all virtual attributes
original.setVirtualAttributes(Collections.EMPTY_LIST);
- original = restTemplate.postForObject(
- BASE_URL + "user/create", original, UserTO.class);
+ original = restTemplate.postForObject(BASE_URL + "user/create", original, UserTO.class);
assertNotNull(original);
assertTrue(original.getVirtualAttributes().isEmpty());
UserTO toBeUpdated = restTemplate.getForObject(
- BASE_URL + "user/read/{userId}.json",
- UserTO.class, original.getId());
+ BASE_URL + "user/read/{userId}.json", UserTO.class, original.getId());
AttributeTO virtual = new AttributeTO();
- virtual.setSchema(
- "virtualdata");
- virtual.addValue(
- "virtualvalue");
+ virtual.setSchema("virtualdata");
+ virtual.addValue("virtualvalue");
toBeUpdated.addVirtualAttribute(virtual);
@@ -1565,16 +1423,14 @@ public class UserTestITCase extends Abst
assertNotNull(userMod);
- toBeUpdated = restTemplate.postForObject(
- BASE_URL + "user/update", userMod, UserTO.class);
+ toBeUpdated = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
assertNotNull(toBeUpdated);
assertFalse(toBeUpdated.getVirtualAttributes().isEmpty());
assertNotNull(toBeUpdated.getVirtualAttributes().get(0));
- assertEquals(virtual.getSchema(),
- toBeUpdated.getVirtualAttributes().get(0).getSchema());
+ assertEquals(virtual.getSchema(), toBeUpdated.getVirtualAttributes().get(0).getSchema());
}
@Test
@@ -1584,8 +1440,7 @@ public class UserTestITCase extends Abst
userTO.getMemberships().clear();
userTO.getDerivedAttributes().clear();
- userTO = restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
UserMod userMod = new UserMod();
@@ -1593,8 +1448,7 @@ public class UserTestITCase extends Abst
userMod.setPassword("123password");
userMod.addResourceToBeAdded("resource-testdb");
- userTO = restTemplate.postForObject(
- BASE_URL + "user/update", userMod, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
assertNotNull(userTO);
final List<PropagationTO> propagations = userTO.getPropagationTOs();
@@ -1602,8 +1456,7 @@ public class UserTestITCase extends Abst
assertNotNull(propagations);
assertEquals(1, propagations.size());
- final PropagationTaskExecStatus status =
- propagations.get(0).getStatus();
+ final PropagationTaskExecStatus status = propagations.get(0).getStatus();
final String resource = propagations.get(0).getResourceName();
assertNotNull(status);
@@ -1619,8 +1472,7 @@ public class UserTestITCase extends Abst
userTO.getDerivedAttributes().clear();
userTO.addResource("resource-csv");
- userTO = restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
final List<PropagationTO> propagations = userTO.getPropagationTOs();
@@ -1628,8 +1480,7 @@ public class UserTestITCase extends Abst
assertNotNull(propagations);
assertEquals(1, propagations.size());
- final PropagationTaskExecStatus status =
- propagations.get(0).getStatus();
+ final PropagationTaskExecStatus status = propagations.get(0).getStatus();
final String resource = propagations.get(0).getResourceName();
assertNotNull(status);
@@ -1647,12 +1498,10 @@ public class UserTestITCase extends Abst
userTO.addAttribute(attributeTO);
try {
- restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
fail();
} catch (SyncopeClientCompositeErrorException sccee) {
- assertNotNull(sccee.getException(
- SyncopeClientExceptionType.InvalidValues));
+ assertNotNull(sccee.getException(SyncopeClientExceptionType.InvalidValues));
}
}
@@ -1675,25 +1524,20 @@ public class UserTestITCase extends Abst
userTO.addResource("resource-csv");
- UserTO actual = restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ UserTO actual = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(actual);
assertNotNull(actual.getDerivedAttributeMap().get("csvuserid"));
ConnObjectTO connObjectTO = restTemplate.getForObject(
- BASE_URL + "/resource/{resourceName}/read/{objectId}.json",
- ConnObjectTO.class,
- "resource-csv",
- actual.getDerivedAttributeMap().get("csvuserid").getValues().
- get(0));
+ BASE_URL + "/resource/{resourceName}/read/{objectId}.json", ConnObjectTO.class, "resource-csv",
+ actual.getDerivedAttributeMap().get("csvuserid").getValues().get(0));
assertNotNull(connObjectTO);
- assertEquals("sx-dx", connObjectTO.getAttributeMap().get("ROLE").
- getValues().get(0));
+ assertEquals("sx-dx", connObjectTO.getAttributeMap().get("ROLE").getValues().get(0));
}
-
+
@Test
public void membershipAttrPropagation() {
UserTO userTO = getSampleTO("checkMembAttrPropagation@syncope-idm.org");
@@ -1708,17 +1552,17 @@ public class UserTestITCase extends Abst
MembershipTO membershipTO = new MembershipTO();
membershipTO.setRoleId(1L);
-
+
AttributeTO mderived_sx = new AttributeTO();
mderived_sx.setSchema("mderived_sx");
mderived_sx.setValues(Collections.singletonList("sx"));
membershipTO.addAttribute(mderived_sx);
-
+
AttributeTO mderived_dx = new AttributeTO();
mderived_dx.setSchema("mderived_dx");
mderived_dx.setValues(Collections.singletonList("dx"));
membershipTO.addAttribute(mderived_dx);
-
+
AttributeTO mderiveddata = new AttributeTO();
mderiveddata.setSchema("mderToBePropagated");
membershipTO.addDerivedAttribute(mderiveddata);
@@ -1727,22 +1571,54 @@ public class UserTestITCase extends Abst
userTO.addResource("resource-csv");
- UserTO actual = restTemplate.postForObject(
- BASE_URL + "user/create", userTO, UserTO.class);
+ UserTO actual = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(actual);
assertNotNull(actual.getDerivedAttributeMap().get("csvuserid"));
ConnObjectTO connObjectTO = restTemplate.getForObject(
- BASE_URL + "/resource/{resourceName}/read/{objectId}.json",
- ConnObjectTO.class,
- "resource-csv",
- actual.getDerivedAttributeMap().get("csvuserid").getValues().
- get(0));
+ BASE_URL + "/resource/{resourceName}/read/{objectId}.json", ConnObjectTO.class, "resource-csv",
+ actual.getDerivedAttributeMap().get("csvuserid").getValues().get(0));
assertNotNull(connObjectTO);
- assertEquals("sx-dx", connObjectTO.getAttributeMap().get("MEMBERSHIP").
- getValues().get(0));
+ assertEquals("sx-dx", connObjectTO.getAttributeMap().get("MEMBERSHIP").getValues().get(0));
+ }
+
+ @Test
+ public void issueSYNCOPE16() {
+ UserTO userTO = getSampleTO("virattrupdate@apache.org");
+
+ MembershipTO membershipTO = new MembershipTO();
+ membershipTO.setRoleId(8L);
+ userTO.addMembership(membershipTO);
+
+ // 1. create user
+ UserTO actual = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
+ assertNotNull(actual);
+
+ // 2. check for virtual attribute value
+ actual = restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, actual.getId());
+ assertNotNull(actual);
+ assertEquals("virtualvalue", actual.getVirtualAttributeMap().get("virtualdata").getValues().get(0));
+
+ UserMod userMod = new UserMod();
+ userMod.setId(actual.getId());
+
+ AttributeMod virtualdata = new AttributeMod();
+ virtualdata.setSchema("virtualdata");
+ virtualdata.addValueToBeAdded("virtualupdated");
+
+ userMod.addVirtualAttributeToBeRemoved("virtualdata");
+ userMod.addVirtualAttributeToBeUpdated(virtualdata);
+
+ // 3. update virtual attribute
+ actual = restTemplate.postForObject(BASE_URL + "user/update", userMod, UserTO.class);
+ assertNotNull(actual);
+
+ // 4. check for virtual attribute value
+ actual = restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, actual.getId());
+ assertNotNull(actual);
+ assertEquals("virtualupdated", actual.getVirtualAttributeMap().get("virtualdata").getValues().get(0));
}
}