use of com.evolveum.midpoint.xml.ns._public.common.common_3.WorkItemType in project midpoint by Evolveum.
the class TestDelegation method test140DelegateToNoneByReplace.
@Test
public void test140DelegateToNoneByReplace() throws Exception {
final String TEST_NAME = "test140DelegateToNoneByReplace";
TestUtil.displayTestTile(this, TEST_NAME);
login(userLead3);
Task task = createTask(TEST_NAME);
OperationResult result = task.getResult();
workflowService.delegateWorkItem(workItemId, Collections.emptyList(), REPLACE_ASSIGNEES, result);
result.computeStatus();
assertSuccess(result);
WorkItemType workItem = getWorkItem(task, result);
display("work item", workItem);
PrismObject<TaskType> wfTask = getObjectViaRepo(TaskType.class, taskOid);
display("task", wfTask);
assertEquals("Wrong assigneeRef count", 0, workItem.getAssigneeRef().size());
assertRefEquals("Wrong originalAssigneeRef", ort(userLead1Oid), workItem.getOriginalAssigneeRef());
org.activiti.engine.task.Task activitiTask = activitiEngine.getTaskService().createTaskQuery().taskId(workItem.getExternalId()).singleResult();
System.out.println("Activiti task: " + activitiTask);
assertEquals("Wrong activiti assignee", null, activitiTask.getAssignee());
assertEquals("Wrong # of assignees", 0, getAssignees(activitiTask).size());
List<WorkItemDelegationEventType> events = WfContextUtil.getWorkItemEvents(wfTask.asObjectable().getWorkflowContext(), workItemId, WorkItemDelegationEventType.class);
assertEquals("Wrong # of delegation events", 3, events.size());
// TODO check content
}
use of com.evolveum.midpoint.xml.ns._public.common.common_3.WorkItemType in project midpoint by Evolveum.
the class AbstractWfTestPolicy method getWorkItem.
protected WorkItemType getWorkItem(Task task, OperationResult result) throws SchemaException, SecurityViolationException, ConfigurationException, ObjectNotFoundException {
//Collection<SelectorOptions<GetOperationOptions>> options = GetOperationOptions.resolveItemsNamed(WorkItemType.F_TASK_REF);
SearchResultList<WorkItemType> itemsAll = modelService.searchContainers(WorkItemType.class, null, null, task, result);
if (itemsAll.size() != 1) {
System.out.println("Unexpected # of work items: " + itemsAll.size());
for (WorkItemType workItem : itemsAll) {
System.out.println(PrismUtil.serializeQuietly(prismContext, workItem));
}
}
assertEquals("Wrong # of total work items", 1, itemsAll.size());
return itemsAll.get(0);
}
use of com.evolveum.midpoint.xml.ns._public.common.common_3.WorkItemType in project midpoint by Evolveum.
the class AbstractWfTestPolicy method checkVisibleWorkItem.
protected void checkVisibleWorkItem(ExpectedWorkItem expectedWorkItem, int count, Task task, OperationResult result) throws SchemaException, ObjectNotFoundException, ConfigurationException, SecurityViolationException {
S_AtomicFilterExit q = QueryUtils.filterForAssignees(QueryBuilder.queryFor(WorkItemType.class, prismContext), SecurityUtil.getPrincipal(), OtherPrivilegesLimitationType.F_APPROVAL_WORK_ITEMS);
List<WorkItemType> currentWorkItems = modelService.searchContainers(WorkItemType.class, q.build(), null, task, result);
long found = currentWorkItems.stream().filter(wi -> expectedWorkItem == null || expectedWorkItem.matches(wi)).count();
assertEquals("Wrong # of matching work items", count, found);
}
use of com.evolveum.midpoint.xml.ns._public.common.common_3.WorkItemType in project midpoint by Evolveum.
the class AbstractWfTestPolicy method assertWfContextAfterClockworkRun.
protected void assertWfContextAfterClockworkRun(Task rootTask, List<Task> subtasks, List<WorkItemType> workItems, OperationResult result, String objectOid, List<ExpectedTask> expectedTasks, List<ExpectedWorkItem> expectedWorkItems) throws Exception {
final Collection<SelectorOptions<GetOperationOptions>> options = SelectorOptions.createCollection(new ItemPath(F_WORKFLOW_CONTEXT, F_WORK_ITEM), createRetrieve());
Task opTask = taskManager.createTaskInstance();
TaskType rootTaskType = modelService.getObject(TaskType.class, rootTask.getOid(), options, opTask, result).asObjectable();
display("rootTask", rootTaskType);
assertTrue("unexpected process instance id in root task", rootTaskType.getWorkflowContext() == null || rootTaskType.getWorkflowContext().getProcessInstanceId() == null);
assertEquals("Wrong # of wf subtasks (" + expectedTasks + ")", expectedTasks.size(), subtasks.size());
int i = 0;
for (Task subtask : subtasks) {
TaskType subtaskType = modelService.getObject(TaskType.class, subtask.getOid(), options, opTask, result).asObjectable();
display("Subtask #" + (i + 1) + ": ", subtaskType);
checkTask(subtaskType, subtask.toString(), expectedTasks.get(i));
WfTestUtil.assertRef("requester ref", subtaskType.getWorkflowContext().getRequesterRef(), USER_ADMINISTRATOR_OID, false, false);
i++;
}
assertEquals("Wrong # of work items", expectedWorkItems.size(), workItems.size());
i = 0;
for (WorkItemType workItem : workItems) {
display("Work item #" + (i + 1) + ": ", workItem);
display("Task", WfContextUtil.getTask(workItem));
if (objectOid != null) {
WfTestUtil.assertRef("object reference", WfContextUtil.getObjectRef(workItem), objectOid, true, true);
}
String targetOid = expectedWorkItems.get(i).targetOid;
if (targetOid != null) {
WfTestUtil.assertRef("target reference", WfContextUtil.getTargetRef(workItem), targetOid, true, true);
}
WfTestUtil.assertRef("assignee reference", workItem.getOriginalAssigneeRef(), expectedWorkItems.get(i).assigneeOid, false, true);
// name is not known, as it is not stored in activiti (only OID is)
//WfTestUtil.assertRef("task reference", workItem.getTaskRef(), null, false, true);
final TaskType subtaskType = WfContextUtil.getTask(workItem);
checkTask(subtaskType, "task in workItem", expectedWorkItems.get(i).task);
WfTestUtil.assertRef("requester ref", subtaskType.getWorkflowContext().getRequesterRef(), USER_ADMINISTRATOR_OID, false, true);
i++;
}
}
use of com.evolveum.midpoint.xml.ns._public.common.common_3.WorkItemType in project midpoint by Evolveum.
the class TestUserChangeApprovalLegacy method assertWfContextAfterClockworkRun.
protected void assertWfContextAfterClockworkRun(Task rootTask, List<Task> subtasks, OperationResult result, String... processNames) throws Exception {
final Collection<SelectorOptions<GetOperationOptions>> options = SelectorOptions.createCollection(new ItemPath(F_WORKFLOW_CONTEXT, F_WORK_ITEM), createRetrieve());
Task opTask = taskManager.createTaskInstance();
TaskType rootTaskType = modelService.getObject(TaskType.class, rootTask.getOid(), options, opTask, result).asObjectable();
display("rootTask", rootTaskType);
assertTrue("unexpected process instance id in root task", rootTaskType.getWorkflowContext() == null || rootTaskType.getWorkflowContext().getProcessInstanceId() == null);
assertEquals("Wrong # of wf subtasks w.r.t processNames (" + Arrays.asList(processNames) + ")", processNames.length, subtasks.size());
int i = 0;
for (Task subtask : subtasks) {
TaskType subtaskType = modelService.getObject(TaskType.class, subtask.getOid(), options, opTask, result).asObjectable();
display("Subtask #" + (i + 1) + ": ", subtaskType);
checkTask(subtaskType, subtask.toString(), processNames[i++]);
WfTestUtil.assertRef("requester ref", subtaskType.getWorkflowContext().getRequesterRef(), USER_ADMINISTRATOR_OID, false, false);
}
final Collection<SelectorOptions<GetOperationOptions>> options1 = resolveItemsNamed(new ItemPath(T_PARENT, F_OBJECT_REF), new ItemPath(T_PARENT, F_TARGET_REF), F_ASSIGNEE_REF, F_ORIGINAL_ASSIGNEE_REF, new ItemPath(T_PARENT, F_REQUESTER_REF));
List<WorkItemType> workItems = modelService.searchContainers(WorkItemType.class, null, options1, opTask, result);
assertEquals("Wrong # of work items", processNames.length, workItems.size());
i = 0;
for (WorkItemType workItem : workItems) {
display("Work item #" + (i + 1) + ": ", workItem);
display("Task ref", WfContextUtil.getTask(workItem));
WfTestUtil.assertRef("object reference", WfContextUtil.getObjectRef(workItem), USER_JACK_OID, true, true);
WfTestUtil.assertRef("target reference", WfContextUtil.getTargetRef(workItem), ROLE_R1_OID, true, true);
// name is not known, as it is not stored in activiti (only OID is)
WfTestUtil.assertRef("assignee reference", workItem.getOriginalAssigneeRef(), R1BOSS_OID, false, true);
//WfTestUtil.assertRef("task reference", workItem.getTaskRef(), null, false, true);
final TaskType subtaskType = WfContextUtil.getTask(workItem);
checkTask(subtaskType, "task in workItem", processNames[i++]);
WfTestUtil.assertRef("requester ref", subtaskType.getWorkflowContext().getRequesterRef(), USER_ADMINISTRATOR_OID, false, true);
}
}
Aggregations