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 testConditionalProcessFactInsertedBefore() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-IntermediateCatchEventConditionPI.bpmn2", "BPMN2-IntermediateCatchEventSignal.bpmn2"); ksession = createKnowledgeSession(kbase); Person person0 = new Person("john"); ksession.insert(person0); Map<String, Object> params0 = new HashMap<String, Object>(); params0.put("name", "john"); ProcessInstance pi0 = ksession.startProcess("IntermediateCatchEvent", params0); ksession.insert(pi0); Person person = new Person("Jack"); ksession.insert(person); Map<String, Object> params = new HashMap<String, Object>(); params.put("name", "Poul"); ProcessInstance pi = ksession.startProcess("IntermediateCatchEventPI", params); ksession.insert(pi); pi = ksession.getProcessInstance(pi.getId()); assertThat(pi).isNotNull(); Person person2 = new Person("Poul"); ksession.insert(person2); pi = ksession.getProcessInstance(pi.getId()); assertThat(pi).isNull(); }
@Test public void testAgendaFilter() { message.setMessage("Hello World"); message.setStatus(Message.HELLO); ksession.insert(message); ksession.startProcess("process-test"); assertEquals("Goodbye cruel world", message.getMessage());
@Test public void testBusinessRuleTaskWithContionalEvent() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-ConditionalEventRuleTask.bpmn2", "BPMN2-ConditionalEventRuleTask.drl"); ksession = createKnowledgeSession(kbase); List<String> list = new ArrayList<String>(); ksession.setGlobal("list", list); ProcessInstance processInstance = ksession.startProcess("TestFlow"); assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE); Person person = new Person(); person.setName("john"); ksession.insert(person); assertProcessInstanceCompleted(processInstance.getId(), ksession); assertTrue(list.size() == 1); }
@Test public void testProcessInstanceResolverStrategy() throws Exception { kbuilder.add(new ClassPathResource(PROCESS_NAME, this.getClass()), ResourceType.DRF); KieBase kbase = kbuilder.newKieBase(); KieSession ksession = kbase.newKieSession(); ProcessInstance processInstance = ksession.createProcessInstance("process name", new HashMap<String, Object>()); ksession.insert(processInstance);
private void testJitting(final String drl) { final KieBase kbase = loadKnowledgeBaseFromString(drl); final KieSession ksession = kbase.newKieSession(); ksession.insert(new Person("mark", 37)); ksession.insert(new Person("mario", 38)); ksession.fireAllRules(); ksession.dispose(); }
@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 testConditionalStart() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-ConditionalStart.bpmn2"); ksession = createKnowledgeSession(kbase); final List<Long> startedInstances = new ArrayList<>(); ksession.addEventListener(new DefaultProcessEventListener() { @Override public void afterProcessStarted(ProcessStartedEvent event) { startedInstances.add(event.getProcessInstance().getId()); } }); Person person = new Person(); person.setName("jack"); ksession.insert(person); assertThat(startedInstances).hasSize(0); person = new Person(); person.setName("john"); ksession.insert(person); assertThat(startedInstances).hasSize(1); assertNodeTriggered(startedInstances.get(0), "StartProcess", "Hello", "EndProcess"); }
@Test public void testBusinessRuleTaskWithGlobal() { final List<String> list = new ArrayList<String>(); assertEquals(sessionId, ksession.getIdentifier()); ksession.insert(pi); assertEquals(1, list.size()); assertEquals(0, logs.size());
@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); } }
KieBase ruleBase = ruleContextProvider.getKieBase(scope); if (ruleBase != null) { KieSession session = ruleBase.newKieSession(); Map<String, Object> globals = ruleContextProvider.getGlobals(scope); if (globals != null) { for (Map.Entry<String, Object> entry : globals.entrySet()) { session.setGlobal(entry.getKey(), entry.getValue()); ((InternalOrganizationalEntity) user).setId(userId); TaskServiceRequest request = new TaskServiceRequest(scope, user, null); session.setGlobal("request", request); session.insert(task); if (params != null) { if (params instanceof ContentData) { session.insert(params); session.fireAllRules(); session.dispose();
@Test public void testBusinessRuleTaskFireLimitAsParameter() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-BusinessRuleTaskWithDataInputLoop.bpmn2", "BPMN2-BusinessRuleTaskInfiniteLoop.drl"); ksession = createKnowledgeSession(kbase); ksession.insert(new Person()); Map<String, Object> parameters = Collections.singletonMap("limit", 5); assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> { ksession.startProcess("BPMN2-BusinessRuleTask", parameters); }) .withMessageContaining("Fire rule limit reached 5"); }
@Test public void testBusinessRuleTask() { RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get() assertEquals(sessionId, ksession.getIdentifier()); ksession.insert(pi); assertEquals(0, logs.size()); assertEquals(1, logs.size());
kieSession.insert(inputParameters); kieSession.fireAllRules();
@Test public void testRuleFlowConstraintDialects() throws Exception { builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "test_ConstraintDialects.rfm" ) ) ); assertEquals( 0, builder.getErrors().getErrors().length ); List<Integer> inList = new ArrayList<Integer>(); List<Integer> outList = new ArrayList<Integer>(); session.setGlobal( "inList", inList ); session.setGlobal( "outList", outList ); inList.add( 25 ); FactHandle handle = session.insert( inList ); session.startProcess( "ConstraintDialects" ); assertEquals( 4, outList.size() ); assertEquals( "MVELCodeConstraint was here", outList.get( 0 ) ); assertEquals( "JavaCodeConstraint was here",
@Test public void testBusinessRuleTaskException() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-BusinessRuleTask.bpmn2", "BPMN2-BusinessRuleTaskWithException.drl"); ksession = createKnowledgeSession(kbase); ksession.insert(new Person()); assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> { ksession.startProcess("BPMN2-BusinessRuleTask"); }) .withMessageContaining("On purpose") .satisfies((RuntimeException re) -> { assertNotNull(re.getCause()); assertTrue(re.getCause() instanceof ConsequenceException); assertNotNull(re.getCause().getCause()); assertTrue(re.getCause().getCause() instanceof RuntimeException); }); }
kieSession.insert(inputParameters); kieSession.fireAllRules();