@Test public void testSignalEnd() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-SignalEndEvent.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", "MyValue"); ksession.startProcess("SignalEndEvent", params); }
@Test public void testLimitExceptionInfoList() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-ExceptionThrowingServiceProcess.bpmn2"); ksession = createKnowledgeSession(kbase); LoggingTaskHandlerDecorator loggingTaskHandlerWrapper = new LoggingTaskHandlerDecorator(ServiceTaskHandler.class, 2); loggingTaskHandlerWrapper.setPrintStackTrace(false); ksession.getWorkItemManager().registerWorkItemHandler("Service Task", loggingTaskHandlerWrapper); Map<String, Object> params = new HashMap<String, Object>(); params.put("serviceInputItem", "exception message"); ksession.startProcess("ServiceProcess", params); ksession.startProcess("ServiceProcess", params); ksession.startProcess("ServiceProcess", params); int size = loggingTaskHandlerWrapper.getWorkItemExceptionInfoList().size(); assertTrue( "WorkItemExceptionInfoList is too large: " + size, size == 2 ); }
@Test public void testDataInputAssociations() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-DataInputAssociations.bpmn2"); ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new WorkItemHandler() { public void abortWorkItem(WorkItem manager, WorkItemManager mgr) { } public void executeWorkItem(WorkItem workItem, WorkItemManager mgr) { assertEquals("hello world", workItem.getParameter("coId")); } }); Document document = DocumentBuilderFactory .newInstance() .newDocumentBuilder() .parse(new ByteArrayInputStream("<user hello='hello world' />" .getBytes())); Map<String, Object> params = new HashMap<String, Object>(); params.put("instanceMetadata", document.getFirstChild()); ProcessInstance processInstance = ksession.startProcess("process", params); }
@Test public void testResourceType() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-MinimalProcess.bpmn2"); ksession = createKnowledgeSession(kbase); ksession.startProcess("Minimal"); }
@Test public void testFormatLoggingError() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-ExceptionThrowingServiceProcess.bpmn2"); ksession = createKnowledgeSession(kbase); LoggingTaskHandlerDecorator loggingTaskHandlerWrapper = new LoggingTaskHandlerDecorator(ServiceTaskHandler.class, 2); loggingTaskHandlerWrapper.setLoggedMessageFormat("{0} - {1} - {2} - {3}"); List<InputParameter> inputParameters = new ArrayList<LoggingTaskHandlerDecorator.InputParameter>(); inputParameters.add(InputParameter.EXCEPTION_CLASS); inputParameters.add(InputParameter.WORK_ITEM_ID); inputParameters.add(InputParameter.WORK_ITEM_NAME); inputParameters.add(InputParameter.PROCESS_INSTANCE_ID); loggingTaskHandlerWrapper.setLoggedMessageInput(inputParameters); loggingTaskHandlerWrapper.setPrintStackTrace(false); ksession.getWorkItemManager().registerWorkItemHandler("Service Task", loggingTaskHandlerWrapper); Map<String, Object> params = new HashMap<String, Object>(); params.put("serviceInputItem", "exception message"); ksession.startProcess("ServiceProcess", params); ksession.startProcess("ServiceProcess", params); ksession.startProcess("ServiceProcess", params); }
@Test public void testXpathExpression() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-XpathExpression.bpmn2"); ksession = createKnowledgeSession(kbase); Document document = DocumentBuilderFactory .newInstance() .newDocumentBuilder() .parse(new ByteArrayInputStream( "<instanceMetadata><user approved=\"false\" /></instanceMetadata>" .getBytes())); Map<String, Object> params = new HashMap<String, Object>(); params.put("instanceMetadata", document); ProcessInstance processInstance = ksession.startProcess("XPathProcess", params); assertProcessInstanceCompleted(processInstance); }
@Test public void testDataInputAssociationsWithStringObject() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-DataInputAssociations-string-object.bpmn2"); ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new WorkItemHandler() { public void abortWorkItem(WorkItem manager, WorkItemManager mgr) { } public void executeWorkItem(WorkItem workItem, WorkItemManager mgr) { assertEquals("hello", workItem.getParameter("coId")); } }); Map<String, Object> params = new HashMap<String, Object>(); params.put("instanceMetadata", "hello"); ProcessInstance processInstance = ksession.startProcess("process", params); }
@Test public void testDataObject() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-DataObject.bpmn2"); ksession = createKnowledgeSession(kbase); Map<String, Object> params = new HashMap<String, Object>(); params.put("employee", "UserId-12345"); ProcessInstance processInstance = ksession.startProcess("Evaluation", params); assertProcessInstanceCompleted(processInstance); }
@Test public void testMessageEnd() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-MessageEndEvent.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Send Task", new SendTaskHandler()); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", "MyValue"); ProcessInstance processInstance = ksession.startProcess( "MessageEndEvent", params); assertProcessInstanceCompleted(processInstance); }
@Test public void testMultipleProcessInOneFile() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-MultipleProcessInOneFile.bpmn2"); ksession = createKnowledgeSession(kbase); ProcessInstance processInstance = ksession.startProcess("Evaluation"); assertNotNull(processInstance); ProcessInstance processInstance2 = ksession.startProcess("Simple"); assertNotNull(processInstance2); }
@Test public void testEvaluationProcess2() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-EvaluationProcess2.bpmn2"); ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); Map<String, Object> params = new HashMap<String, Object>(); params.put("employee", "UserId-12345"); ProcessInstance processInstance = ksession.startProcess( "com.sample.evaluation", params); assertProcessInstanceCompleted(processInstance); }
@Test public void testSignalEndWithData() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-EndEventSignalWithData.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); Map<String, Object> params = new HashMap<String, Object>(); ProcessInstance processInstance = ksession.startProcess("src.simpleEndSignal", params); assertProcessInstanceCompleted(processInstance); } }
@Test public void testDataInputAssociationsWithString() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-DataInputAssociations-string.bpmn2"); ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new WorkItemHandler() { public void abortWorkItem(WorkItem manager, WorkItemManager mgr) { } public void executeWorkItem(WorkItem workItem, WorkItemManager mgr) { assertEquals("hello", workItem.getParameter("coId")); } }); ProcessInstance processInstance = ksession .startProcess("process", null); }
@Test public void testEscalationEndEventProcess() throws Exception { KieBase kbase = createKnowledgeBase("escalation/BPMN2-EscalationEndEvent.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ProcessInstance processInstance = ksession .startProcess("EscalationEndEvent"); assertProcessInstanceAborted(processInstance); }
@Test public void testUserTaskWithDataStoreScenario() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-UserTaskWithDataStore.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new DoNothingWorkItemHandler()); ksession.startProcess("UserProcess"); // we can't test further as user tasks are asynchronous. }
@Test public void testImport() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-Import.bpmn2"); ksession = createKnowledgeSession(kbase); ProcessInstance processInstance = ksession.startProcess("Import"); assertProcessInstanceCompleted(processInstance); }
@Test public void testDataInputAssociationsWithStringWithoutQuotes() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-DataInputAssociations-string-no-quotes.bpmn2"); ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new WorkItemHandler() { public void abortWorkItem(WorkItem manager, WorkItemManager mgr) { } public void executeWorkItem(WorkItem workItem, WorkItemManager mgr) { assertEquals("hello", workItem.getParameter("coId")); } }); ProcessInstance processInstance = ksession .startProcess("process", null); }
@Test public void testImplicitEndParallel() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-ParallelSplit.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ProcessInstance processInstance = ksession.startProcess("com.sample.test"); assertProcessInstanceCompleted(processInstance); }
@Test public void testSignalBoundaryEventWithTransformation() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper( "BPMN2-BoundarySignalEventOnTaskWithTransformation.bpmn", "BPMN2-IntermediateThrowEventSignal.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); TestWorkItemHandler handler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", "john"); ProcessInstance processInstance = ksession.startProcess("BoundarySignalOnTask"); ProcessInstance processInstance2 = ksession.startProcess("SignalIntermediateEvent", params); assertProcessInstanceFinished(processInstance2, ksession); assertProcessInstanceFinished(processInstance, ksession); String var = getProcessVarValue(processInstance, "x"); assertThat(var).isEqualTo("JOHN"); }
@Test public void startProcessInPersistentEnvironment() { String processId = "minimalProcess"; KieBase kbase = createKieBase(ProcessCreatorForHelp.newShortestProcess( processId ) ); StatefulKnowledgeSession crmPersistentSession = createSession(kbase); crmPersistentSession.startProcess(processId); crmPersistentSession.dispose(); }