context.loadTaskVariables(task); kieSession.insert(task); kieSession.fireAllRules(); Set<Assignment> assignments = new TreeSet<>(); String queryName = System.getProperty("org.jbpm.task.assignment.rules.query");
@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 @Ignore("bpmn does not compile") public void testConditionalStart() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-ConditionalStart.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); Person person = new Person(); person.setName("jack"); ksession.insert(person); ksession.fireAllRules(); person = new Person(); person.setName("john"); ksession.insert(person); ksession.fireAllRules(); }
@Test public void testAdHocSubProcess() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-AdHocSubProcess.bpmn2", "BPMN2-AdHocSubProcess.drl"); ksession = createKnowledgeSession(kbase); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ProcessInstance processInstance = ksession .startProcess("AdHocSubProcess"); assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE); assertEquals("Entry", ((WorkflowProcessInstance) processInstance).getVariable("x")); WorkItem workItem = workItemHandler.getWorkItem(); assertNull(workItem); ksession = restoreSession(ksession, true); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ksession.fireAllRules(); logger.debug("Signaling Hello2"); ksession.signalEvent("Hello2", null, processInstance.getId()); workItem = workItemHandler.getWorkItem(); assertNotNull(workItem); ksession = restoreSession(ksession, true); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null); }
@Test @Ignore("Process does not complete.") public void testAdHocSubProcessAutoComplete() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-AdHocSubProcessAutoComplete.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ProcessInstance processInstance = ksession.startProcess("AdHocSubProcess"); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_ACTIVE); WorkItem workItem = workItemHandler.getWorkItem(); assertThat(workItem).isNull(); ksession = restoreSession(ksession); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ksession.fireAllRules(); workItem = workItemHandler.getWorkItem(); assertThat(workItem).isNotNull().withFailMessage("WorkItem should not be null."); ksession = restoreSession(ksession); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null); assertProcessInstanceCompleted(processInstance.getId(), ksession); }
@Test(timeout=10000) public void traitWithEquality() { String source = "org/drools/compiler/factmodel/traits/testTraitWithEquality.drl"; KieSession ks = getSession( source ); TraitFactory.setMode( mode, ks.getKieBase() ); List info = new ArrayList(); ks.setGlobal( "list", info ); ks.fireAllRules(); assertTrue( info.contains( "DON" ) ); assertTrue( info.contains( "EQUAL" ) ); }
@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 testAdHocSubProcessAutoComplete() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper( "BPMN2-AdHocSubProcessAutoComplete.bpmn2", "BPMN2-AdHocSubProcess.drl"); ksession = createKnowledgeSession(kbase); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ProcessInstance processInstance = ksession .startProcess("AdHocSubProcess"); assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE); WorkItem workItem = workItemHandler.getWorkItem(); assertNull(workItem); ksession = restoreSession(ksession, true); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ksession.fireAllRules(); workItem = workItemHandler.getWorkItem(); assertNotNull(workItem); ksession = restoreSession(ksession, true); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null); assertEquals("Exit", getProcessVarValue(processInstance, "y")); assertProcessInstanceFinished(processInstance, ksession); }
@Test @Ignore("Process does not complete.") public void testAdHocSubProcess() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-AdHocSubProcess.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ProcessInstance processInstance = ksession.startProcess("AdHocSubProcess"); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_ACTIVE); WorkItem workItem = workItemHandler.getWorkItem(); assertThat(workItem).isNull(); ksession = restoreSession(ksession); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ksession.fireAllRules(); ksession.signalEvent("Hello2", null, processInstance.getId()); workItem = workItemHandler.getWorkItem(); assertThat(workItem).isNotNull(); ksession = restoreSession(ksession); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null); assertProcessInstanceCompleted(processInstance.getId(), ksession); }
@Test public void testCreationOfSessionWithPersistence() throws ParseException { Account accountClosed = new Account("C"); FactHandle accountOpen_FH = ksession.insert( accountOpen ); FactHandle accountClosed_FH = ksession.insert(accountClosed); OrderEligibility thisYearEligibility = new OrderEligibility(thisYearOrder); FactHandle lye_FH = ksession.insert( lastYearEligibility ); FactHandle tye_FH = ksession.insert(thisYearEligibility); ksession.fireAllRules();
@Override public void afterFireAllRules(KieSession kieSession, TestGenKieSessionJournal journal, TestGenKieSessionFireAllRules fire) { KieSession uncorruptedSession = scoreDirector.createKieSession(); for (TestGenKieSessionInsert insert : journal.getInitialInserts()) { Object object = insert.getFact().getInstance(); uncorruptedSession.insert(object); } uncorruptedSession.fireAllRules(); uncorruptedSession.dispose(); Score<?> uncorruptedScore = extractScore(uncorruptedSession); Score<?> workingScore = extractScore(kieSession); if (!workingScore.equals(uncorruptedScore)) { logger.debug(" Score: working[{}], uncorrupted[{}]", workingScore, uncorruptedScore); throw new TestGenCorruptedScoreException(workingScore, uncorruptedScore); } }
@Test public void testRuleFlow() throws Exception { builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.drl" ) ) ); builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rfm" ) ) ); KieSession workingMemory = createKieSession(true, builder.getPackages()); final List<String> list = new ArrayList<String>(); workingMemory.setGlobal( "list", list ); workingMemory.fireAllRules(); assertEquals( 0, list.size() ); final ProcessInstance processInstance = workingMemory.startProcess( "0" ); assertEquals( ProcessInstance.STATE_COMPLETED, processInstance.getState() ); assertEquals( 4, list.size() ); assertEquals( "Rule1", list.get( 0 ) ); list.subList(1,2).contains( "Rule2" ); list.subList(1,2).contains( "Rule3" ); assertEquals( "Rule4", list.get( 3 ) ); }
@Test public void testAdHocSubProcessAutoCompleteDynamicSubProcess() throws Exception { .startProcess("AdHocSubProcess"); assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE); ksession.fireAllRules(); DynamicNodeInstance dynamicContext = (DynamicNodeInstance) ((WorkflowProcessInstance) processInstance) .getNodeInstances().iterator().next();
kieSession.insert(inputParameters); kieSession.fireAllRules();
@Test public void testRuleFlowInPackage() throws Exception { builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.drl" ) ) ); builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rfm" ) ) ); final KieSession workingMemory = createKieSession(true, builder.getPackages()); final List<String> list = new ArrayList<String>(); workingMemory.setGlobal( "list", list ); workingMemory.fireAllRules(); assertEquals( 0, list.size() ); final ProcessInstance processInstance = workingMemory.startProcess( "0" ); assertEquals( ProcessInstance.STATE_COMPLETED, processInstance.getState() ); assertEquals( 4, list.size() ); assertEquals( "Rule1", list.get( 0 ) ); list.subList(1,2).contains( "Rule2" ); list.subList(1,2).contains( "Rule3" ); assertEquals( "Rule4", list.get( 3 ) ); }
@Test public void testAdHocSubProcessAutoCompleteDynamicSubProcess2() throws Exception { .startProcess("AdHocSubProcess"); assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE); ksession.fireAllRules(); DynamicNodeInstance dynamicContext = (DynamicNodeInstance) ((WorkflowProcessInstance) processInstance) .getNodeInstances().iterator().next();
kieSession.insert(inputParameters); kieSession.fireAllRules();
@Test public void testRuleFlowUpgrade() throws Exception { workingMemory.setGlobal( "list", list ); workingMemory.fireAllRules(); assertEquals( 0, list.size() ); assertEquals( ProcessInstance.STATE_COMPLETED, processInstance.getState() ); assertEquals( 4, list.size() ); assertEquals( "Rule1", list.get( 0 ) );
@Test public void testAdHocSubProcessAutoCompleteDynamicTask() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper( ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ksession.fireAllRules(); workItem = workItemHandler.getWorkItem(); assertNotNull(workItem);
kieSession.insert(inputParameters); kieSession.fireAllRules();