Skip to content

Commit

Permalink
RHBPMS-5040 - Human Task should be in Obsolete status when we skip Hu…
Browse files Browse the repository at this point in the history
…manTask (#1056)
  • Loading branch information
mswiderski committed Nov 6, 2017
1 parent 6f12327 commit eb0fa80
Show file tree
Hide file tree
Showing 2 changed files with 166 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -122,26 +122,18 @@ public void afterTaskAddedEvent(TaskEvent event) {
createTask(event, null, null);
}

/**
* When a task is skipped, the status for dashbuilder integration task must be Exited.
*
* @param ti The task.
*/

public void afterTaskSkippedEvent(TaskEvent event) {
createOrUpdateTask(event, Status.Exited);
createOrUpdateTask(event, Status.Obsolete);
}

public void afterTaskStoppedEvent(TaskEvent event) {
updateTask(event);
}

/**
* When a task is failed, the status for dashbuilder integration task must be Exited.
*
* @param ti The task.
*/

public void afterTaskFailedEvent(TaskEvent event) {
createOrUpdateTask(event, Status.Error);
createOrUpdateTask(event, Status.Failed);
}

public void afterTaskExitedEvent(TaskEvent event) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@
import org.kie.internal.task.api.AuditTask;
import org.kie.internal.task.api.TaskVariable;
import org.kie.internal.task.api.TaskVariable.VariableType;
import org.kie.internal.task.api.model.InternalTask;
import org.kie.internal.task.api.model.InternalTaskData;
import org.kie.internal.task.api.model.TaskEvent;

public abstract class TaskAuditBaseTest extends HumanTaskServicesBaseTest {
Expand Down Expand Up @@ -1083,6 +1085,166 @@ public void testLifeCycleWithBAM() {
assertEquals("Completed", allGroupAuditTasks.get(0).getStatus());
assertBAMTask(taskId, "Completed");
}

@Test
public void testLifeCycleWithBAMEndWithExited() {
Task task = new TaskFluent().setName("This is my task name")
.addPotentialGroup("Knights Templer")
.setAdminUser("Administrator")
.getTask();

taskService.addTask(task, new HashMap<String, Object>());
long taskId = task.getId();

List<AuditTask> allGroupAuditTasks = taskAuditService.getAllGroupAuditTasksByUser("Knights Templer", new QueryFilter());
assertEquals(1, allGroupAuditTasks.size());
assertTrue(allGroupAuditTasks.get(0).getStatus().equals("Ready"));
assertBAMTask(taskId, "Ready");

taskService.claim(taskId, "Darth Vader");

allGroupAuditTasks = taskAuditService.getAllAuditTasksByUser("Darth Vader", new QueryFilter());
assertEquals(1, allGroupAuditTasks.size());
assertEquals("Reserved", allGroupAuditTasks.get(0).getStatus());
assertBAMTask(taskId, "Reserved");

taskService.release(taskId, "Darth Vader");

allGroupAuditTasks = taskAuditService.getAllGroupAuditTasksByUser("Knights Templer", new QueryFilter());
assertEquals(1, allGroupAuditTasks.size());
assertTrue(allGroupAuditTasks.get(0).getStatus().equals("Ready"));
assertBAMTask(taskId, "Ready");

taskService.claim(taskId, "Darth Vader");

allGroupAuditTasks = taskAuditService.getAllAuditTasksByUser("Darth Vader", new QueryFilter());;
assertEquals(1, allGroupAuditTasks.size());
assertEquals("Reserved", allGroupAuditTasks.get(0).getStatus());
assertBAMTask(taskId, "Reserved");

// Go straight from Ready to Inprogress
taskService.start(taskId, "Darth Vader");

allGroupAuditTasks = taskAuditService.getAllAuditTasksByUser("Darth Vader", new QueryFilter());;
assertEquals(1, allGroupAuditTasks.size());
assertEquals("InProgress", allGroupAuditTasks.get(0).getStatus());
assertBAMTask(taskId, "InProgress");

taskService.exit(taskId, "Administrator");

allGroupAuditTasks = taskAuditService.getAllAuditTasks(new QueryFilter());;
assertEquals(1, allGroupAuditTasks.size());
assertEquals("Exited", allGroupAuditTasks.get(0).getStatus());
assertBAMTask(taskId, "Exited");

}

@Test
public void testLifeCycleWithBAMEndWithObsolete() {
Task task = new TaskFluent().setName("This is my task name")
.addPotentialGroup("Knights Templer")
.setAdminUser("Administrator")
.getTask();
((InternalTaskData)task.getTaskData()).setSkipable(true);

taskService.addTask(task, new HashMap<String, Object>());
long taskId = task.getId();

List<AuditTask> allGroupAuditTasks = taskAuditService.getAllGroupAuditTasksByUser("Knights Templer", new QueryFilter());
assertEquals(1, allGroupAuditTasks.size());
assertTrue(allGroupAuditTasks.get(0).getStatus().equals("Ready"));
assertBAMTask(taskId, "Ready");

taskService.claim(taskId, "Darth Vader");

allGroupAuditTasks = taskAuditService.getAllAuditTasksByUser("Darth Vader", new QueryFilter());
assertEquals(1, allGroupAuditTasks.size());
assertEquals("Reserved", allGroupAuditTasks.get(0).getStatus());
assertBAMTask(taskId, "Reserved");

taskService.release(taskId, "Darth Vader");

allGroupAuditTasks = taskAuditService.getAllGroupAuditTasksByUser("Knights Templer", new QueryFilter());
assertEquals(1, allGroupAuditTasks.size());
assertTrue(allGroupAuditTasks.get(0).getStatus().equals("Ready"));
assertBAMTask(taskId, "Ready");

taskService.claim(taskId, "Darth Vader");

allGroupAuditTasks = taskAuditService.getAllAuditTasksByUser("Darth Vader", new QueryFilter());;
assertEquals(1, allGroupAuditTasks.size());
assertEquals("Reserved", allGroupAuditTasks.get(0).getStatus());
assertBAMTask(taskId, "Reserved");

// Go straight from Ready to Inprogress
taskService.start(taskId, "Darth Vader");

allGroupAuditTasks = taskAuditService.getAllAuditTasksByUser("Darth Vader", new QueryFilter());;
assertEquals(1, allGroupAuditTasks.size());
assertEquals("InProgress", allGroupAuditTasks.get(0).getStatus());
assertBAMTask(taskId, "InProgress");

taskService.skip(taskId, "Darth Vader");

allGroupAuditTasks = taskAuditService.getAllAuditTasksByUser("Darth Vader", new QueryFilter());;
assertEquals(1, allGroupAuditTasks.size());
assertEquals("Obsolete", allGroupAuditTasks.get(0).getStatus());
assertBAMTask(taskId, "Obsolete");

}

@Test
public void testLifeCycleWithBAMEndWithFailed() {
Task task = new TaskFluent().setName("This is my task name")
.addPotentialGroup("Knights Templer")
.setAdminUser("Administrator")
.getTask();

taskService.addTask(task, new HashMap<String, Object>());
long taskId = task.getId();

List<AuditTask> allGroupAuditTasks = taskAuditService.getAllGroupAuditTasksByUser("Knights Templer", new QueryFilter());
assertEquals(1, allGroupAuditTasks.size());
assertTrue(allGroupAuditTasks.get(0).getStatus().equals("Ready"));
assertBAMTask(taskId, "Ready");

taskService.claim(taskId, "Darth Vader");

allGroupAuditTasks = taskAuditService.getAllAuditTasksByUser("Darth Vader", new QueryFilter());
assertEquals(1, allGroupAuditTasks.size());
assertEquals("Reserved", allGroupAuditTasks.get(0).getStatus());
assertBAMTask(taskId, "Reserved");

taskService.release(taskId, "Darth Vader");

allGroupAuditTasks = taskAuditService.getAllGroupAuditTasksByUser("Knights Templer", new QueryFilter());
assertEquals(1, allGroupAuditTasks.size());
assertTrue(allGroupAuditTasks.get(0).getStatus().equals("Ready"));
assertBAMTask(taskId, "Ready");

taskService.claim(taskId, "Darth Vader");

allGroupAuditTasks = taskAuditService.getAllAuditTasksByUser("Darth Vader", new QueryFilter());;
assertEquals(1, allGroupAuditTasks.size());
assertEquals("Reserved", allGroupAuditTasks.get(0).getStatus());
assertBAMTask(taskId, "Reserved");

// Go straight from Ready to Inprogress
taskService.start(taskId, "Darth Vader");

allGroupAuditTasks = taskAuditService.getAllAuditTasksByUser("Darth Vader", new QueryFilter());;
assertEquals(1, allGroupAuditTasks.size());
assertEquals("InProgress", allGroupAuditTasks.get(0).getStatus());
assertBAMTask(taskId, "InProgress");

taskService.fail(taskId, "Darth Vader", null);

allGroupAuditTasks = taskAuditService.getAllAuditTasksByUser("Darth Vader", new QueryFilter());;
assertEquals(1, allGroupAuditTasks.size());
assertEquals("Failed", allGroupAuditTasks.get(0).getStatus());
assertBAMTask(taskId, "Failed");

}

protected Map<String, String> collectVariableNameAndValue(List<TaskVariable> variables) {
Map<String, String> nameValue = new HashMap<String, String>();
Expand Down

0 comments on commit eb0fa80

Please sign in to comment.