@Test public void testMultiInstanceLoopCharacteristicsProcess() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-MultiInstanceLoopCharacteristicsProcess.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); Map<String, Object> params = new HashMap<String, Object>(); List<String> myList = new ArrayList<String>(); myList.add("First Item"); myList.add("Second Item"); params.put("list", myList); ProcessInstance processInstance = ksession.startProcess("MultiInstanceLoopCharacteristicsProcess", params); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_COMPLETED); }
@Test public void testSubProcess() throws Exception { KieSession workingMemory = createStatefulKnowledgeSessionFromRule(true); ProcessInstance processInstance = ( ProcessInstance ) workingMemory.startProcess("com.sample.ruleflow"); assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState()); assertEquals(2, workingMemory.getProcessInstances().size()); workingMemory.insert(new Person()); workingMemory.fireAllRules(); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); assertEquals(0, workingMemory.getProcessInstances().size()); }
@Test public void testPersistenceWorkItems3() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( new ClassPathResource( "WorkItemsProcess.rf" ), ResourceType.DRF ); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages( kbuilder.getKnowledgePackages() ); StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env ); ksession.getWorkItemManager().registerWorkItemHandler("MyWork", new SystemOutWorkItemHandler()); ProcessInstance processInstance = ksession.startProcess( "org.drools.test.TestProcess" ); ksession.insert( "TestString" ); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); }
@Test public void testDynamicSubProcess() throws Exception { KieBase kbase = readDynamicSubProcess(); KieSession workingMemory = kbase.newKieSession(); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", "subflow"); ProcessInstance processInstance = ( ProcessInstance ) workingMemory.startProcess("com.sample.ruleflow", params); assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState()); assertEquals(2, workingMemory.getProcessInstances().size()); workingMemory.insert(new Person()); workingMemory.fireAllRules(); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); assertEquals(0, workingMemory.getProcessInstances().size()); }
@Test public void testSignalIntermediateThrow() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-IntermediateThrowEventSignal.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", "MyValue"); ProcessInstance processInstance = ksession.startProcess("SignalIntermediateEvent", params); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_COMPLETED); }
@Test public void testErrornousHandlerWithStrategyRetry() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("handler/BPMN2-UserTaskWithBooleanOutput.bpmn2", "handler/BPMN2-ScriptTask.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); ErrornousWorkItemHandler workItemHandler = new ErrornousWorkItemHandler("ScriptTask", HandlingStrategy.RETRY); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); Map<String, Object> params = new HashMap<>(); params.put("isChecked", false); ProcessInstance processInstance = ksession.startProcess("com.sample.boolean", params); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); assertProcessVarValue(processInstance, "isChecked", "true"); }
@Test public void testDataObject() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-DataObject.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); Map<String, Object> params = new HashMap<String, Object>(); params.put("employee", "UserId-12345"); ProcessInstance processInstance = ksession.startProcess("Evaluation", params); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_COMPLETED); }
@Test public void testIntermediateCatchEventMessage() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventMessage.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); ProcessInstance processInstance = ksession.startProcess("IntermediateCatchEvent"); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_ACTIVE); ksession = restoreSession(ksession, true); // now signal process instance ksession.signalEvent("Message-HelloMessage", "SomeValue", processInstance.getId()); assertProcessInstanceCompleted(processInstance.getId(), ksession); }
@Test public void testSignalIntermediateThrow() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-IntermediateThrowEventSignal.bpmn2"); ksession = createKnowledgeSession(kbase); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", "MyValue"); ProcessInstance processInstance = ksession.startProcess( "SignalIntermediateEvent", params); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_COMPLETED); }
@Test public void testIntermediateCatchEventSignal() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventSignal.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler()); ProcessInstance processInstance = ksession.startProcess("IntermediateCatchEvent"); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_ACTIVE); ksession = restoreSession(ksession, true); // now signal process instance ksession.signalEvent("MyMessage", "SomeValue", processInstance.getId()); assertProcessInstanceCompleted(processInstance.getId(), ksession); }
@Test public void testInclusiveSplit() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-InclusiveSplit.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", 15); ProcessInstance processInstance = ksession.startProcess("com.sample.test", params); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_COMPLETED); }
@Test public void testMockDataWorkItemHandler() { String processId = "org.drools.actions"; String workName = "Unnexistent Task"; RuleFlowProcess process = getWorkItemProcess( processId, workName ); KieSession ksession = createKieSession(process); Map<String, Object> output = new HashMap<String, Object>(); output.put("Result", "test"); ksession.getWorkItemManager().registerWorkItemHandler( workName, new MockDataWorkItemHandler(output) ); Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put( "UserName", "John Doe" ); parameters.put( "Person", new Person( "John Doe" ) ); ProcessInstance processInstance = ksession.startProcess( "org.drools.actions", parameters ); Object numberVariable = ((WorkflowProcessInstance)processInstance).getVariable("MyObject"); Assert.assertNotNull(numberVariable); Assert.assertEquals("test", numberVariable); Assert.assertEquals( ProcessInstance.STATE_COMPLETED, processInstance.getState() ); }
@Test public void testInclusiveSplitDefault() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-InclusiveSplitDefault.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", -5); ProcessInstance processInstance = ksession.startProcess("com.sample.test", params); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_COMPLETED); }
@Test public void testErrornousHandlerWithStrategyAbort() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("handler/BPMN2-UserTaskWithBooleanOutput.bpmn2", "handler/BPMN2-ScriptTask.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); ErrornousWorkItemHandler workItemHandler = new ErrornousWorkItemHandler("ScriptTask", HandlingStrategy.ABORT); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); Map<String, Object> params = new HashMap<>(); params.put("isChecked", false); ProcessInstance processInstance = ksession.startProcess("com.sample.boolean", params); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); assertProcessVarValue(processInstance, "isChecked", "false"); WorkItem handledWorkItem = workItemHandler.getWorkItem(); assertEquals(WorkItem.ABORTED, handledWorkItem.getState()); }
@Test public void testMinimalProcessWithGraphical() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-MinimalProcessWithGraphical.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); ProcessInstance processInstance = ksession.startProcess("Minimal"); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_COMPLETED); }
@Test public void testScriptTaskFromKjarByNameNamedKbaseKsession() { RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get() .newDefaultBuilder(GROUP_ID, ARTIFACT_ID, VERSION, "defaultKieBase", "defaultKieSession") .userGroupCallback(userGroupCallback) .get(); manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment); assertNotNull(manager); RuntimeEngine engine = manager.getRuntimeEngine(EmptyContext.get()); assertNotNull(engine); Map<String, Object> params = new HashMap<String, Object>(); ProcessInstance processInstance = engine.getKieSession().startProcess("ScriptTask", params); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); }
@Test public void testScriptTask() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-ScriptTask.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); ProcessInstance processInstance = ksession.startProcess("ScriptTask"); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_COMPLETED); }
@Test public void testScriptTaskFromKjarByName() { RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get() .newDefaultBuilder(GROUP_ID, ARTIFACT_ID, VERSION) .userGroupCallback(userGroupCallback) .get(); manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment); assertNotNull(manager); RuntimeEngine engine = manager.getRuntimeEngine(EmptyContext.get()); assertNotNull(engine); Map<String, Object> params = new HashMap<String, Object>(); ProcessInstance processInstance = engine.getKieSession().startProcess("ScriptTask", params); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); }
/** * Tests */ @Test public void testMinimalProcess() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-MinimalProcess.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); ProcessInstance processInstance = ksession.startProcess("Minimal"); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_COMPLETED); }
@Test public void testScriptTaskFromClasspathContainer() { RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get() .newClasspathKmoduleDefaultBuilder() .userGroupCallback(userGroupCallback) .get(); manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment); assertNotNull(manager); RuntimeEngine engine = manager.getRuntimeEngine(EmptyContext.get()); assertNotNull(engine); Map<String, Object> params = new HashMap<String, Object>(); ProcessInstance processInstance = engine.getKieSession().startProcess("ScriptTask", params); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); }