@Test public void testOnEntryExitScript() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-OnEntryExitScriptProcess.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new SystemOutWorkItemHandler()); List<String> myList = new ArrayList<String>(); ksession.setGlobal("list", myList); ProcessInstance processInstance = ksession .startProcess("OnEntryExitScriptProcess"); assertProcessInstanceCompleted(processInstance); assertEquals(4, myList.size()); }
@Test public void testOnEntryExitMixedNamespacedScript() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-OnEntryExitMixedNamespacedScriptProcess.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new SystemOutWorkItemHandler()); List<String> myList = new ArrayList<String>(); ksession.setGlobal("list", myList); ProcessInstance processInstance = ksession .startProcess("OnEntryExitScriptProcess"); assertProcessInstanceCompleted(processInstance); assertEquals(4, myList.size()); }
@Test public void testOnEntryExitNamespacedScript() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-OnEntryExitNamespacedScriptProcess.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new SystemOutWorkItemHandler()); List<String> myList = new ArrayList<String>(); ksession.setGlobal("list", myList); ProcessInstance processInstance = ksession .startProcess("OnEntryExitScriptProcess"); assertProcessInstanceCompleted(processInstance); assertEquals(4, myList.size()); }
@Test public void testOnEntryExitScriptDesigner() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-OnEntryExitDesignerScriptProcess.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new SystemOutWorkItemHandler()); List<String> myList = new ArrayList<String>(); ksession.setGlobal("list", myList); ProcessInstance processInstance = ksession .startProcess("OnEntryExitScriptProcess"); assertProcessInstanceCompleted(processInstance); assertEquals(4, myList.size()); }
@Test @Ignore("beta4 phreak") public void testStartTimerCycleFromDiscDRL() throws Exception { KieBase kbase = createKnowledgeBaseFromDisc("rules-timer.drl"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); long sessionId = ksession.getIdentifier(); Environment env = ksession.getEnvironment(); final List<String> list = new ArrayList<String>(); ksession.setGlobal("list", list); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(5000); assertEquals(2, list.size()); logger.info("dispose"); ksession.dispose(); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(sessionId, kbase, null, env); AuditLoggerFactory.newInstance(Type.JPA, ksession, null); final List<String> list2 = new ArrayList<String>(); ksession.setGlobal("list", list2); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(6000); assertEquals(3, list2.size()); }
@Test @Ignore("beta4 phreak") public void testStartTimerCycleFromClasspathDRL() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("rules-timer.drl"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); long sessionId = ksession.getIdentifier(); Environment env = ksession.getEnvironment(); final List<String> list = new ArrayList<String>(); ksession.setGlobal("list", list); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(5000); assertEquals(2, list.size()); logger.info("dispose"); ksession.dispose(); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(sessionId, kbase, null, env); AuditLoggerFactory.newInstance(Type.JPA, ksession, null); final List<String> list2 = new ArrayList<String>(); ksession.setGlobal("list", list2); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(5000); assertEquals(3, list2.size()); }
@Test public void testLocalTransactionPerStatement() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newByteArrayResource( ruleString.getBytes() ), ResourceType.DRL ); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); if ( kbuilder.hasErrors() ) { fail( kbuilder.getErrors().toString() ); } kbase.addPackages( kbuilder.getKnowledgePackages() ); StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env ); List<?> list = new ArrayList<Object>(); ksession.setGlobal( "list", list ); ksession.insert( 1 ); ksession.insert( 2 ); ksession.insert( 3 ); ksession.fireAllRules(); assertEquals( 3, list.size() ); }
ksession.setGlobal( "list", list ); ksession.insert( 1 );
List<?> list = new ArrayList<Object>(); ksession.setGlobal( "list", list );
public void init() { StatefulKnowledgeSession ksession = knowledgeBase.newStatefulKnowledgeSession(); String string = "foo"; // setGlobal 'string' as 'var' in rule ksession.setGlobal("var", string); }
@Test public void testJBRules2140() { KnowledgeBase kbase = loadKnowledgeBase("test_JBRules2140.drl"); StatefulKnowledgeSession ksession = createKnowledgeSession( kbase ); List<String> results = new ArrayList<String>(); ksession.setGlobal( "results", results ); ksession.fireAllRules(); assertEquals( 2, results.size() ); assertTrue( results.contains( "java" ) ); assertTrue( results.contains( "mvel" ) ); }
@Test public void testjustEval() throws Exception { KnowledgeBase kbase = SerializationHelper.serializeObject( loadKnowledgeBase( "test_NoPatterns.drl" ) ); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); final List list = new ArrayList(); ksession.setGlobal( "list", list ); ksession.fireAllRules(); assertTrue( list.contains( "fired1" ) ); assertTrue( list.contains( "fired3" ) ); }
@Test public void testEmptyRule() throws Exception { KnowledgeBase kbase = SerializationHelper.serializeObject( loadKnowledgeBase( "test_EmptyRule.drl" ) ); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); final List list = new ArrayList(); ksession.setGlobal( "list", list ); ksession.fireAllRules(); assertTrue( list.contains( "fired1" ) ); assertTrue( list.contains( "fired2" ) ); }
@Test public void testCastingInsideEvals() throws Exception { KnowledgeBase kbase = SerializationHelper.serializeObject( loadKnowledgeBase( "test_castsInsideEval.drl" ) ); StatefulKnowledgeSession ksession = createKnowledgeSession( kbase ); ksession.setGlobal( "value", new Integer( 20 ) ); ksession.fireAllRules(); }
@Test (timeout = 10000) public void testAccumulateReturningNull() throws Exception { // read in the source KnowledgeBase kbase = loadKnowledgeBase( "test_AccumulateReturningNull.drl" ); StatefulKnowledgeSession wm = createKnowledgeSession( kbase ); final List<?> results = new ArrayList<Object>(); wm.setGlobal( "results", results ); wm.insert( new Cheese( "stilton", 10 ) ); }
@Test public void testSelfReference2() throws Exception { final KnowledgeBase kbase = SerializationHelper.serializeObject( loadKnowledgeBase( "test_SelfReference2.drl" ) ); final StatefulKnowledgeSession ksession = createKnowledgeSession( kbase ); final List results = new ArrayList(); ksession.setGlobal( "results", results ); ksession.insert( new Cheese() ); ksession.fireAllRules(); assertEquals( 0, results.size() ); }
@Test public void testOnEntryExitScript() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-OnEntryExitScriptProcess.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new SystemOutWorkItemHandler()); List<String> myList = new ArrayList<String>(); ksession.setGlobal("list", myList); ProcessInstance processInstance = ksession .startProcess("OnEntryExitScriptProcess"); assertProcessInstanceCompleted(processInstance); assertEquals(4, myList.size()); }
@Test public void testOnEntryExitMixedNamespacedScript() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-OnEntryExitMixedNamespacedScriptProcess.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new SystemOutWorkItemHandler()); List<String> myList = new ArrayList<String>(); ksession.setGlobal("list", myList); ProcessInstance processInstance = ksession .startProcess("OnEntryExitScriptProcess"); assertProcessInstanceCompleted(processInstance); assertEquals(4, myList.size()); }
@Test public void testOnEntryExitScriptDesigner() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-OnEntryExitDesignerScriptProcess.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ksession.getWorkItemManager().registerWorkItemHandler("MyTask", new SystemOutWorkItemHandler()); List<String> myList = new ArrayList<String>(); ksession.setGlobal("list", myList); ProcessInstance processInstance = ksession .startProcess("OnEntryExitScriptProcess"); assertProcessInstanceCompleted(processInstance); assertEquals(4, myList.size()); }
@Test (timeout = 10000) public void testAccumulateInnerClass() throws Exception { // read in the source KnowledgeBase kbase = loadKnowledgeBase( "test_AccumulateInnerClass.drl" ); StatefulKnowledgeSession wm = createKnowledgeSession( kbase ); final List<?> results = new ArrayList<Object>(); wm.setGlobal( "results", results ); wm.insert( new OuterClass.InnerClass( 10 ) ); wm.insert( new OuterClass.InnerClass( 5 ) ); wm.fireAllRules(); assertEquals( 15, results.get( 0 ) ); }