You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2012/12/11 13:26:27 UTC
svn commit: r1420123 -
/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/TaskTestITCase.java
Author: ilgrosso
Date: Tue Dec 11 12:26:26 2012
New Revision: 1420123
URL: http://svn.apache.org/viewvc?rev=1420123&view=rev
Log:
[SYNCOPE-248] Applying provided patch
Modified:
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/TaskTestITCase.java
Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/TaskTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/TaskTestITCase.java?rev=1420123&r1=1420122&r2=1420123&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/TaskTestITCase.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/TaskTestITCase.java Tue Dec 11 12:26:26 2012
@@ -53,6 +53,10 @@ import org.springframework.web.client.Ht
@FixMethodOrder(MethodSorters.JVM)
public class TaskTestITCase extends AbstractTest {
+ private static final int SCHED_TASK_ID = 5;
+
+ private static final int SYNC_TASK_ID = 4;
+
@Test
@SuppressWarnings("unchecked")
public void getJobClasses() {
@@ -93,7 +97,7 @@ public class TaskTestITCase extends Abst
@Test
public void update() {
- SchedTaskTO task = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", SchedTaskTO.class, 5);
+ SchedTaskTO task = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", SchedTaskTO.class, SCHED_TASK_ID);
assertNotNull(task);
SchedTaskTO taskMod = new SchedTaskTO();
@@ -188,18 +192,17 @@ public class TaskTestITCase extends Abst
} catch (HttpStatusCodeException e) {
assertEquals(HttpStatus.NOT_FOUND, e.getStatusCode());
}
- TaskExecTO execution = restTemplate.postForObject(BASE_URL + "task/execute/{taskId}", null, TaskExecTO.class, 1);
- assertEquals(PropagationTaskExecStatus.SUBMITTED.name(), execution.getStatus());
+ TaskExecTO exec = restTemplate.postForObject(BASE_URL + "task/execute/{taskId}", null, TaskExecTO.class, 1);
+ assertEquals(PropagationTaskExecStatus.SUBMITTED.name(), exec.getStatus());
- execution = restTemplate.getForObject(BASE_URL + "task/execution/report/{executionId}"
- + "?executionStatus=SUCCESS&message=OK", TaskExecTO.class, execution.getId());
- assertEquals(PropagationTaskExecStatus.SUCCESS.name(), execution.getStatus());
- assertEquals("OK", execution.getMessage());
+ exec = restTemplate.getForObject(BASE_URL + "task/execution/report/{executionId}"
+ + "?executionStatus=SUCCESS&message=OK", TaskExecTO.class, exec.getId());
+ assertEquals(PropagationTaskExecStatus.SUCCESS.name(), exec.getStatus());
+ assertEquals("OK", exec.getMessage());
restTemplate.getForObject(BASE_URL + "task/delete/{taskId}", PropagationTaskTO.class, 1);
try {
- restTemplate.getForObject(BASE_URL + "task/execution/read/{executionId}", TaskExecTO.class,
- execution.getId());
+ restTemplate.getForObject(BASE_URL + "task/execution/read/{executionId}", TaskExecTO.class, exec.getId());
} catch (HttpStatusCodeException e) {
assertEquals(HttpStatus.NOT_FOUND, e.getStatusCode());
}
@@ -229,7 +232,7 @@ public class TaskTestITCase extends Abst
assertNotNull(usersPre);
// Update sync task
- SyncTaskTO task = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", SyncTaskTO.class, 4);
+ SyncTaskTO task = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", SyncTaskTO.class, SYNC_TASK_ID);
assertNotNull(task);
// add custom SyncJob actions
@@ -253,38 +256,11 @@ public class TaskTestITCase extends Abst
assertEquals(task.getId(), actual.getId());
assertEquals(TestSyncActions.class.getName(), actual.getActionsClassName());
- SyncTaskTO taskTO = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", SyncTaskTO.class, 4L);
- assertNotNull(taskTO);
- assertNotNull(taskTO.getExecutions());
-
- // read executions before sync (dryrun test could be executed before)
- int preSyncSize = taskTO.getExecutions().size();
-
- TaskExecTO execution = restTemplate.postForObject(BASE_URL + "task/execute/{taskId}", null, TaskExecTO.class,
- taskTO.getId());
- assertEquals("JOB_FIRED", execution.getStatus());
-
- int i = 0;
- int maxit = 50;
-
- // wait for sync completion (executions incremented)
- do {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- }
-
- taskTO = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", SyncTaskTO.class, taskTO.getId());
-
- assertNotNull(taskTO);
- assertNotNull(taskTO.getExecutions());
-
- i++;
- } while (preSyncSize == taskTO.getExecutions().size() && i < maxit);
+ execTask(SyncTaskTO.class, SYNC_TASK_ID, 50, false);
- // check for sync policy
+ // after execution of the sync task the user data should be synced from
+ // csv datasource and processed by user template
userTO = restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, userTO.getId());
-
assertNotNull(userTO);
assertEquals("test9", userTO.getUsername());
assertEquals(SpringContextInitializer.isActivitiConfigured() ? "active" : "created", userTO.getStatus());
@@ -309,9 +285,9 @@ public class TaskTestITCase extends Abst
// check for sync results
Integer usersPost = restTemplate.getForObject(BASE_URL + "user/count.json", Integer.class);
assertNotNull(usersPost);
- assertTrue("Expected " + (usersPre + 9) + ", found " + usersPost, usersPost == usersPre + 9);
+ assertEquals(usersPre.intValue() + 9, usersPost.intValue());
- // Check for issue 215:
+ // Check for issue 215:
// * expected disabled user test1
// * expected enabled user test2
@@ -343,35 +319,8 @@ public class TaskTestITCase extends Abst
assertNotNull(actual);
assertEquals(task.getId(), actual.getId());
- // read executions before sync (dryrun test could be executed before)
- int preSyncSize = actual.getExecutions().size();
-
- TaskExecTO execution = restTemplate.postForObject(BASE_URL + "task/execute/{taskId}", null, TaskExecTO.class,
- actual.getId());
- assertEquals("JOB_FIRED", execution.getStatus());
-
- int i = 0;
- int maxit = 20;
-
- // wait for sync completion (executions incremented)
- do {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- }
-
- actual = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", SyncTaskTO.class, actual.getId());
-
- assertNotNull(actual);
- assertNotNull(actual.getExecutions());
-
- i++;
-
- } while (preSyncSize == actual.getExecutions().size() && i < maxit);
-
- assertEquals(1, actual.getExecutions().size());
-
- final String status = actual.getExecutions().get(0).getStatus();
+ TaskExecTO execution = execTask(SyncTaskTO.class, actual.getId(), 20, false);
+ final String status = execution.getStatus();
assertNotNull(status);
assertTrue(PropagationTaskExecStatus.valueOf(status).isSuccessful());
@@ -384,40 +333,17 @@ public class TaskTestITCase extends Abst
@Test
public void issue196() {
- TaskExecTO execution = restTemplate.postForObject(BASE_URL + "task/execute/{taskId}", null, TaskExecTO.class, 6);
- assertNotNull(execution);
- assertEquals(0, execution.getId());
- assertNotNull(execution.getTask());
+ TaskExecTO exec = restTemplate.postForObject(BASE_URL + "task/execute/{taskId}", null, TaskExecTO.class, 6);
+ assertNotNull(exec);
+ assertEquals(0, exec.getId());
+ assertNotNull(exec.getTask());
}
@Test
public void dryRun() {
- SyncTaskTO taskTO = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", SyncTaskTO.class, 4L);
-
- assertNotNull(taskTO);
- assertNotNull(taskTO.getExecutions());
-
- int preDryRunSize = taskTO.getExecutions().size();
-
- TaskExecTO execution = restTemplate.postForObject(BASE_URL + "task/execute/{taskId}?dryRun=true", null,
- TaskExecTO.class, 4);
- assertNotNull(execution);
-
- // wait for sync completion (executions incremented)
- do {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- }
-
- taskTO = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", SyncTaskTO.class, taskTO.getId());
-
- assertNotNull(taskTO);
- assertNotNull(taskTO.getExecutions());
-
- } while (preDryRunSize == taskTO.getExecutions().size());
-
- assertEquals("SUCCESS", taskTO.getExecutions().get(0).getStatus());
+ TaskExecTO execution = execTask(SyncTaskTO.class, SYNC_TASK_ID, 50, true);
+ assertEquals("Execution of task " + execution.getTask() + " failed with message " + execution.getMessage(),
+ "SUCCESS", execution.getStatus());
}
@Test
@@ -582,32 +508,8 @@ public class TaskTestITCase extends Abst
assertFalse(actual.getUserTemplate().getResources().isEmpty());
assertFalse(actual.getUserTemplate().getMemberships().isEmpty());
- // read executions before sync (dryrun test could be executed before)
- int preSyncSize = actual.getExecutions().size();
-
- TaskExecTO execution =
- restTemplate.postForObject(BASE_URL + "task/execute/{taskId}", null, TaskExecTO.class, actual.getId());
- assertEquals("JOB_FIRED", execution.getStatus());
-
- int i = 0;
- int maxit = 50;
-
- // wait for sync completion (executions incremented)
- do {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- }
-
- actual = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", SyncTaskTO.class, actual.getId());
- assertNotNull(actual);
- assertNotNull(actual.getExecutions());
-
- i++;
- } while (preSyncSize == actual.getExecutions().size() && i < maxit);
- assertEquals(preSyncSize + 1, actual.getExecutions().size());
-
- final String status = actual.getExecutions().get(0).getStatus();
+ TaskExecTO execution = execTask(SyncTaskTO.class, actual.getId(), 50, false);
+ final String status = execution.getStatus();
assertNotNull(status);
assertTrue(PropagationTaskExecStatus.valueOf(status).isSuccessful());
@@ -647,32 +549,7 @@ public class TaskTestITCase extends Abst
@Test
public void issueSYNCOPE230() {
// 1. read SyncTask for resource-db-sync (table TESTSYNC on external H2)
- SyncTaskTO task = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", SyncTaskTO.class, 10);
- assertNotNull(task);
-
- int preSyncSize = task.getExecutions().size();
-
- // 2. execute the SyncTask for the first time
- TaskExecTO execution = restTemplate.postForObject(BASE_URL + "task/execute/{taskId}", null, TaskExecTO.class,
- task.getId());
- assertEquals("JOB_FIRED", execution.getStatus());
-
- int i = 0;
- final int maxit = 20;
- do {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- }
-
- task = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", SyncTaskTO.class, task.getId());
-
- assertNotNull(task);
- assertNotNull(task.getExecutions());
-
- i++;
- } while (preSyncSize == task.getExecutions().size() && i < maxit);
- assertEquals(1, task.getExecutions().size());
+ execTask(SyncTaskTO.class, 10, 20, false);
// 3. read e-mail address for user created by the SyncTask first execution
UserTO userTO = restTemplate.getForObject(
@@ -686,33 +563,50 @@ public class TaskTestITCase extends Abst
jdbcTemplate.execute("UPDATE TESTSYNC SET email='updatedSYNCOPE230@syncope.apache.org'");
// 5. re-execute the SyncTask
- execution = restTemplate.postForObject(BASE_URL + "task/execute/{taskId}", null, TaskExecTO.class,
- task.getId());
+ execTask(SyncTaskTO.class, 10, 20, false);
+
+ // 6. verify that the e-mail was updated
+ userTO = restTemplate.getForObject(
+ BASE_URL + "user/readByUsername/{username}.json", UserTO.class, "issuesyncope230");
+ assertNotNull(userTO);
+ email = userTO.getAttributeMap().get("email").getValues().iterator().next();
+ assertNotNull(email);
+ assertEquals("updatedSYNCOPE230@syncope.apache.org", email);
+ }
+
+ private TaskExecTO execTask(final Class<? extends TaskTO> taskClass, final long taskId,
+ final int maxWaitSeconds, final boolean dryRun) {
+
+ TaskTO taskTO = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", taskClass, taskId);
+ assertNotNull(taskTO);
+ assertNotNull(taskTO.getExecutions());
+
+ int preSyncSize = taskTO.getExecutions().size();
+ TaskExecTO execution = restTemplate.postForObject(
+ BASE_URL + "task/execute/{taskId}" + (dryRun ? "?dryRun=true" : ""), null,
+ TaskExecTO.class, taskTO.getId());
assertEquals("JOB_FIRED", execution.getStatus());
- preSyncSize = task.getExecutions().size();
- i = 0;
+ int i = 0;
+ int maxit = maxWaitSeconds;
+
+ // wait for sync completion (executions incremented)
do {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
- task = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", SyncTaskTO.class, task.getId());
+ taskTO = restTemplate.getForObject(BASE_URL + "task/read/{taskId}", taskClass, taskTO.getId());
- assertNotNull(task);
- assertNotNull(task.getExecutions());
+ assertNotNull(taskTO);
+ assertNotNull(taskTO.getExecutions());
i++;
- } while (preSyncSize == task.getExecutions().size() && i < maxit);
- assertEquals(2, task.getExecutions().size());
-
- // 6. verify that the e-mail was updated
- userTO = restTemplate.getForObject(
- BASE_URL + "user/readByUsername/{username}.json", UserTO.class, "issuesyncope230");
- assertNotNull(userTO);
- email = userTO.getAttributeMap().get("email").getValues().iterator().next();
- assertNotNull(email);
- assertEquals("updatedSYNCOPE230@syncope.apache.org", email);
+ } while (preSyncSize == taskTO.getExecutions().size() && i < maxit);
+ if (i == maxit) {
+ throw new RuntimeException("Timeout when executing task " + taskId);
+ }
+ return taskTO.getExecutions().get(0);
}
-}
+}
\ No newline at end of file