use of org.jbpm.bpmn2.core.Error in project jbpm by kiegroup.
the class IntermediateEventTest method testErrorBoundaryEventOnMultiInstanceSubprocess.
@Test
public void testErrorBoundaryEventOnMultiInstanceSubprocess() throws Exception {
KieBase kbase = createKnowledgeBase("subprocess/BPMN2-MultiInstanceSubprocessWithBoundaryError.bpmn2");
StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
TestWorkItemHandler handler = new TestWorkItemHandler();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler);
Map<String, Object> params = new HashMap<String, Object>();
List<String> approvers = new ArrayList<String>();
approvers.add("john");
approvers.add("john");
params.put("approvers", approvers);
ProcessInstance processInstance = ksession.startProcess("boundary-catch-error-event", params);
assertProcessInstanceActive(processInstance);
List<WorkItem> workItems = handler.getWorkItems();
assertThat(workItems).isNotNull();
assertThat(workItems.size()).isEqualTo(2);
ksession.signalEvent("Inside", null, processInstance.getId());
assertProcessInstanceFinished(processInstance, ksession);
ksession.dispose();
}
use of org.jbpm.bpmn2.core.Error in project jbpm by kiegroup.
the class IntermediateEventTest method testSignalBoundaryEventOnMultiInstanceSubprocess.
@Test
public void testSignalBoundaryEventOnMultiInstanceSubprocess() throws Exception {
KieBase kbase = createKnowledgeBase("subprocess/BPMN2-MultiInstanceSubprocessWithBoundarySignal.bpmn2");
StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
TestWorkItemHandler handler = new TestWorkItemHandler();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler);
Map<String, Object> params = new HashMap<String, Object>();
List<String> approvers = new ArrayList<String>();
approvers.add("john");
approvers.add("john");
params.put("approvers", approvers);
ProcessInstance processInstance = ksession.startProcess("boundary-catch-error-event", params);
assertProcessInstanceActive(processInstance);
List<WorkItem> workItems = handler.getWorkItems();
assertThat(workItems).isNotNull();
assertThat(workItems.size()).isEqualTo(2);
ksession.signalEvent("Outside", null, processInstance.getId());
assertProcessInstanceFinished(processInstance, ksession);
ksession.dispose();
}
use of org.jbpm.bpmn2.core.Error in project jbpm by kiegroup.
the class ErrorEventTest method testErrorBoundaryEventOnTask.
@Test
public void testErrorBoundaryEventOnTask() throws Exception {
KieBase kbase = createKnowledgeBase("BPMN2-ErrorBoundaryEventOnTask.bpmn2");
ksession = createKnowledgeSession(kbase);
TestWorkItemHandler handler = new TestWorkItemHandler();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler);
ProcessInstance processInstance = ksession.startProcess("BPMN2-ErrorBoundaryEventOnTask");
List<WorkItem> workItems = handler.getWorkItems();
assertEquals(2, workItems.size());
WorkItem workItem = workItems.get(0);
if (!"john".equalsIgnoreCase((String) workItem.getParameter("ActorId"))) {
workItem = workItems.get(1);
}
ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null);
assertProcessInstanceFinished(processInstance, ksession);
assertProcessInstanceAborted(processInstance);
assertNodeTriggered(processInstance.getId(), "start", "split", "User Task", "User task error attached", "error end event");
assertNotNodeTriggered(processInstance.getId(), "Script Task", "error1", "error2");
}
use of org.jbpm.bpmn2.core.Error in project jbpm by kiegroup.
the class ErrorEventTest method testErrorBoundaryEventOnServiceTask.
@Test
public void testErrorBoundaryEventOnServiceTask() throws Exception {
KieBase kbase = createKnowledgeBase("BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2");
ksession = createKnowledgeSession(kbase);
TestWorkItemHandler handler = new TestWorkItemHandler();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler);
ksession.getWorkItemManager().registerWorkItemHandler("Service Task", new ServiceTaskHandler());
Map<String, Object> params = new HashMap<String, Object>();
params.put("s", "test");
ProcessInstance processInstance = ksession.startProcess("BPMN2-ErrorBoundaryEventOnServiceTask", params);
List<WorkItem> workItems = handler.getWorkItems();
assertEquals(1, workItems.size());
ksession.getWorkItemManager().completeWorkItem(workItems.get(0).getId(), null);
assertProcessInstanceFinished(processInstance, ksession);
assertNodeTriggered(processInstance.getId(), "start", "split", "User Task", "Service task error attached", "end0", "Script Task", "error2");
assertNotNodeTriggered(processInstance.getId(), "end");
}
use of org.jbpm.bpmn2.core.Error in project jbpm by kiegroup.
the class IntermediateEventTest method testSignalBoundaryEventNoInteruptOnMultiInstanceSubprocess.
@Test
public void testSignalBoundaryEventNoInteruptOnMultiInstanceSubprocess() throws Exception {
KieBase kbase = createKnowledgeBase("subprocess/BPMN2-MultiInstanceSubprocessWithBoundarySignalNoInterupting.bpmn2");
StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
TestWorkItemHandler handler = new TestWorkItemHandler();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler);
Map<String, Object> params = new HashMap<String, Object>();
List<String> approvers = new ArrayList<String>();
approvers.add("john");
approvers.add("john");
params.put("approvers", approvers);
ProcessInstance processInstance = ksession.startProcess("boundary-catch-error-event", params);
assertProcessInstanceActive(processInstance);
List<WorkItem> workItems = handler.getWorkItems();
assertThat(workItems).isNotNull();
assertThat(workItems.size()).isEqualTo(2);
ksession.signalEvent("Outside", null, processInstance.getId());
assertProcessInstanceActive(processInstance.getId(), ksession);
for (WorkItem wi : workItems) {
ksession.getWorkItemManager().completeWorkItem(wi.getId(), null);
}
assertProcessInstanceFinished(processInstance, ksession);
ksession.dispose();
}
Aggregations