@Test public void testHumanTaskFlow_shouldWorkWithGivenProcessBag() throws Exception { authenticateAsAdmin(); addWorkflow("TaskDemoWorkflow"); ProcessBag processBag = new ProcessBag(); processBag.addProperty("test", "test"); Map<String, Object> parameterMap = new HashMap<String, Object>(); parameterMap.put("processBag", processBag); assertThat(taskboxService.getOpenTasks().size(), is(0)); workflowService.startFlow("TaskDemoWorkflow", parameterMap); System.out.println("workflow started, getting processId"); assertNotNull(processBag.getProcessId()); System.out.println("got processId"); assertThat(taskboxService.getOpenTasks().size(), is(1)); System.out.println("opentasks is 1"); Task task = taskboxService.getOpenTasks().get(0); System.out.println("got task"); assertEquals(task.getProcessId(), processBag.getProcessId()); assertEquals(task.getProperty("test"), "test"); assertEquals(task.getTaskType(), "demo"); assertNotNull(task.getTaskId()); System.out.println("task correct, finishing"); taskboxService.finishTask(task); assertTrue(taskboxService.getOpenTasks().size() == 0); }
@Test public void testHumanTaskFlow_shouldCreateOwnProcessBag() throws Exception { addWorkflow("TaskDemoWorkflow"); assertThat(taskboxService.getOpenTasks().size(), is(0)); authenticateAsAdmin(); workflowService.startFlow("TaskDemoWorkflow"); assertThat(taskboxService.getOpenTasks().size(), is(1)); Task task = taskboxService.getOpenTasks().get(0); assertNotNull(task.getProcessId()); assertNotNull(task.getTaskId()); taskboxService.finishTask(task); assertThat(taskboxService.getOpenTasks().size(), is(0)); }
@Test public void testCompleteWorkflow_humanInteractionShouldReplaceValues() throws Exception { addWorkflow("HIDemoWorkflow"); authenticateAsAdmin(); workflowService.startFlow("HIDemoWorkflow"); Task task = taskboxService.getOpenTasks().get(0); Date date = new Date(); task.addOrReplaceProperty("test", date); assertEquals("step1", task.getTaskType()); task.setName("test"); taskboxService.updateTask(task); task = taskboxService.getOpenTasks().get(0); assertEquals("test", task.getName()); taskboxService.finishTask(task); task = taskboxService.getOpenTasks().get(0); assertEquals(date, task.getProperty("test")); assertEquals("step2", task.getTaskType()); taskboxService.finishTask(task); assertThat(taskboxService.getOpenTasks().size(), is(0)); }
@Test public void testHumanTaskFlow_shouldHandleMultipleTasks() throws Exception { addWorkflow("TaskDemoWorkflow"); assertThat(taskboxService.getOpenTasks().size(), is(0)); authenticateAsAdmin(); long id = workflowService.startFlow("TaskDemoWorkflow"); long id2 = workflowService.startFlow("TaskDemoWorkflow"); assertThat(taskboxService.getOpenTasks().size(), is(2)); assertEquals(taskboxService.getTasksForProcessId(String.valueOf(id)).size(), 1); assertEquals(taskboxService.getTasksForProcessId(String.valueOf(id2)).size(), 1); Task task1 = taskboxService.getTasksForProcessId(String.valueOf(id)).get(0); Task task2 = taskboxService.getTasksForProcessId(String.valueOf(id2)).get(0); taskboxService.finishTask(task1); assertThat(taskboxService.getOpenTasks().size(), is(1)); assertEquals(taskboxService.getTasksForProcessId(String.valueOf(id)).size(), 0); assertEquals(taskboxService.getTasksForProcessId(String.valueOf(id2)).size(), 1); taskboxService.finishTask(task2); assertThat(taskboxService.getOpenTasks().size(), is(0)); assertEquals(taskboxService.getTasksForProcessId(String.valueOf(id2)).size(), 0); }