/** * Tests two consecutive connections to see how it works. * * @throws Exception */ public void testDoubleUsage() throws Exception { while (!server.isRunning()) { Thread.sleep(100); // waits until the server finishes the startup } AsyncTaskService client = createTaskClient(); client.connect(); Task task = new Task(); List<I18NText> names1 = new ArrayList<I18NText>(); I18NText text1 = new I18NText("en-UK", "tarea1"); names1.add(text1); task.setNames(names1); TaskData taskData = new TaskData(); taskData.setStatus(Status.Created); taskData.setCreatedBy(new User("usr0")); taskData.setActualOwner(new User("usr0")); task.setTaskData(taskData); ContentData data = new ContentData(); BlockingAddTaskResponseHandler addTaskHandler = new BlockingAddTaskResponseHandler(); client.addTask(task, data, addTaskHandler); long taskId = addTaskHandler.getTaskId(); client.disconnect(); client.connect(); assertTrue("taskId debe ser un valor mayor a cero", taskId > 0); Task task2 = new Task(); List<I18NText> names2 = new ArrayList<I18NText>(); I18NText text2 = new I18NText("en-UK", "tarea1"); names2.add(text2); task2.setNames(names2); TaskData taskData2 = new TaskData(); taskData2.setStatus(Status.Created); taskData2.setCreatedBy(new User("usr0")); taskData2.setActualOwner(new User("usr0")); task2.setTaskData(taskData2); ContentData data2 = new ContentData(); BlockingAddTaskResponseHandler addTaskHandler2 = new BlockingAddTaskResponseHandler(); client.addTask(task2, data2, addTaskHandler2); long taskId2 = addTaskHandler2.getTaskId(); assertTrue("taskId2 debe ser un valor mayor a cero", taskId2 > 0); assertNotSame("taskId y taskId2 deben ser distintos", taskId, taskId2); client.disconnect(); }
public static void runTestLifeCycle( AsyncTaskService client, Map<String, User> users, Map<String, Group> groups) { Map<String, Object> vars = fillVariables(users, groups); // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { workItemId = 1 } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba']], }),"; // str += "descriptions = [ new I18NText( 'en-UK', 'This is my description')], "; // str += "subjects = [ new I18NText( 'en-UK', 'This is my subject')], "; str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })"; BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler(); Task task = (Task) eval(new StringReader(str), vars); client.addTask(task, null, addTaskResponseHandler); long taskId = addTaskResponseHandler.getTaskId(); EventKey key = new TaskEventKey(TaskCompletedEvent.class, taskId); BlockingEventResponseHandler handler = new BlockingEventResponseHandler(); client.registerForEvent(key, false, handler); BlockingTaskSummaryResponseHandler taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler(); client.getTasksAssignedAsPotentialOwner( users.get("bobba").getId(), "en-UK", taskSummaryResponseHandler); List<TaskSummary> tasks = taskSummaryResponseHandler.getResults(); assertEquals(1, tasks.size()); assertEquals(Status.Reserved, tasks.get(0).getStatus()); BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler(); client.start(taskId, users.get("bobba").getId(), responseHandler); taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler(); client.getTasksAssignedAsPotentialOwner( users.get("bobba").getId(), "en-UK", taskSummaryResponseHandler); tasks = taskSummaryResponseHandler.getResults(); assertEquals(1, tasks.size()); assertEquals(Status.InProgress, tasks.get(0).getStatus()); responseHandler = new BlockingTaskOperationResponseHandler(); client.complete(taskId, users.get("bobba").getId(), null, responseHandler); taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler(); client.getTasksAssignedAsPotentialOwner( users.get("bobba").getId(), "en-UK", taskSummaryResponseHandler); tasks = taskSummaryResponseHandler.getResults(); assertEquals(0, tasks.size()); Payload payload = handler.getPayload(); TaskCompletedEvent event = (TaskCompletedEvent) payload.get(); assertNotNull(event); BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler(); client.getTask(taskId, getTaskResponseHandler); Task task1 = getTaskResponseHandler.getTask(); assertEquals(Status.Completed, task1.getTaskData().getStatus()); }
@Override public void executeWorkItem(WorkItem workItem, WorkItemManager manager) { Task task = createTaskBasedOnWorkItemParams(workItem); ContentData content = createTaskContentBasedOnWorkItemParams(workItem); connect(); TaskAddedHandler taskAddedHandler = new TaskAddedHandler(workItem.getId()); if (isAutoClaim(workItem, task)) { taskAddedHandler = new TaskAddedAutoClaimHandler( workItem.getId(), (String) workItem.getParameter("SwimlaneActorId")); } client.addTask(task, content, taskAddedHandler); }
public static void runTestLifeCycleMultipleTasks( AsyncTaskService client, Map<String, User> users, Map<String, Group> groups) { Map<String, Object> vars = fillVariables(users, groups); // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { workItemId = 1 } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba']], }),"; str += "descriptions = [ new I18NText( 'en-UK', 'This is my description')], "; str += "subjects = [ new I18NText( 'en-UK', 'This is my subject')], "; str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })"; // First task // In own scope to make sure that no objects in scope can be used in second task long taskId = 0; BlockingEventResponseHandler handler = new BlockingEventResponseHandler(); { BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler(); Task task = (Task) eval(new StringReader(str), vars); client.addTask(task, null, addTaskResponseHandler); taskId = addTaskResponseHandler.getTaskId(); assertTrue(taskId != 0); EventKey key = new TaskEventKey(TaskCompletedEvent.class, taskId); client.registerForEvent(key, false, handler); BlockingTaskSummaryResponseHandler taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler(); client.getTasksAssignedAsPotentialOwner( users.get("bobba").getId(), "en-UK", taskSummaryResponseHandler); List<TaskSummary> tasks = taskSummaryResponseHandler.getResults(); assertEquals(1, tasks.size()); assertEquals(Status.Reserved, tasks.get(0).getStatus()); BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler(); client.start(taskId, users.get("bobba").getId(), responseHandler); taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler(); client.getTasksAssignedAsPotentialOwner( users.get("bobba").getId(), "en-UK", taskSummaryResponseHandler); tasks = taskSummaryResponseHandler.getResults(); assertEquals(1, tasks.size()); assertEquals(Status.InProgress, tasks.get(0).getStatus()); } // Second task // In own scope to make sure that no objects in scope can be used elsewhere long taskId2 = 0; BlockingEventResponseHandler handler2 = new BlockingEventResponseHandler(); { BlockingAddTaskResponseHandler addTaskResponseHandler2 = new BlockingAddTaskResponseHandler(); Task task2 = (Task) eval(new StringReader(str), vars); client.addTask(task2, null, addTaskResponseHandler2); taskId2 = addTaskResponseHandler2.getTaskId(); assertTrue(taskId2 != 0); assertTrue("Tasks should have different ids.", taskId != taskId2); EventKey key2 = new TaskEventKey(TaskCompletedEvent.class, taskId2); client.registerForEvent(key2, false, handler2); BlockingTaskSummaryResponseHandler taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler(); client.getTasksAssignedAsPotentialOwner( users.get("bobba").getId(), "en-UK", taskSummaryResponseHandler); List<TaskSummary> tasks = taskSummaryResponseHandler.getResults(); assertEquals(2, tasks.size()); BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler(); client.complete(taskId, users.get("bobba").getId(), null, responseHandler); responseHandler = new BlockingTaskOperationResponseHandler(); client.start(taskId2, users.get("bobba").getId(), responseHandler); taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler(); client.getTasksAssignedAsPotentialOwner( users.get("bobba").getId(), "en-UK", taskSummaryResponseHandler); tasks = taskSummaryResponseHandler.getResults(); assertEquals(1, tasks.size()); } Payload payload = handler.getPayload(); TaskCompletedEvent event = (TaskCompletedEvent) payload.get(); assertNotNull(event); BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler(); client.getTask(taskId, getTaskResponseHandler); Task task = getTaskResponseHandler.getTask(); assertEquals(Status.Completed, task.getTaskData().getStatus()); BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler(); client.complete(taskId2, users.get("bobba").getId(), null, responseHandler); payload = handler2.getPayload(); event = (TaskCompletedEvent) payload.get(); assertNotNull(event); BlockingGetTaskResponseHandler getTaskResponseHandler2 = new BlockingGetTaskResponseHandler(); client.getTask(taskId2, getTaskResponseHandler2); Task task2 = getTaskResponseHandler2.getTask(); assertEquals(Status.Completed, task2.getTaskData().getStatus()); }