@Test public void testUserTransactions() throws Exception { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); ResourceType.DRL ); KieBaseConfiguration kBaseConf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); ksession.fireAllRules(); ut.commit(); assertEquals( 2, list.size() ); assertEquals( 4, list.size() ); assertEquals( 6, list.size() );
private KieBaseConfiguration createKnowledgeBaseConfiguration(boolean shareBetaNodes) { KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kconf.setOption( SequentialOption.NO ); kconf.setOption( ShareAlphaNodesOption.YES ); kconf.setOption( shareBetaNodes ? ShareBetaNodesOption.YES : ShareBetaNodesOption.NO ); return kconf; }
@Test(timeout = 10000) public void testAgendaGroupSalience() { "end\n"; KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kconf.setOption( DeclarativeAgendaOption.ENABLED ); ksession.setGlobal( "ruleList", ruleList ); ksession.insert( "fireRules" ); ksession.fireAllRules(); assertEquals( ruleList.get( 0 ), "first" ); assertEquals( ruleList.get( 1 ), "second" ); assertEquals( ruleList.get( 2 ), "third" );
@Test public void testEventExpires() throws Exception { String timerRule = "package org.drools.test\n" + " then \n" + "end"; KieBaseConfiguration kbconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kbconf.setOption( EventProcessingOption.STREAM ); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase( kbconf ); Resource resource = ResourceFactory.newByteArrayResource( timerRule.getBytes() );
@Before public void initialization() { KieFileSystem kfs = KieServices.Factory.get().newKieFileSystem(); kfs.write("src/main/resources/kbase1/window_test.drl", drl); KieBuilder kbuilder = KieServices.Factory.get().newKieBuilder(kfs); kbuilder.buildAll(); List<Message> res = kbuilder.getResults().getMessages(Level.ERROR); assertEquals(res.toString(), 0, res.size()); KieBaseConfiguration kbconf = KnowledgeBaseFactory .newKnowledgeBaseConfiguration(); kbconf.setOption(EventProcessingOption.STREAM); KieBase kbase = KieServices.Factory.get() .newKieContainer(kbuilder.getKieModule().getReleaseId()) .newKieBase(kbconf); KieSessionConfiguration ksconfig = KnowledgeBaseFactory .newKnowledgeSessionConfiguration(); ksconfig.setOption(ClockTypeOption.get("pseudo")); ksession = kbase.newKieSession(ksconfig, null); clock = ksession.getSessionClock(); }
private int processStocks(int stockCount, AgendaEventListener agendaEventListener, String drlContentString) throws Exception { KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kconf.setOption(EventProcessingOption.STREAM); KieBase kbase = loadKnowledgeBaseFromString(kconf, drlContentString); 100 * stIndex, 100 * stIndex); ksession.insert(st); Thread.sleep( 100 );
@Test(timeout=10000) public void testCancelMultipleActivations() { String str = "package org.domain.test\n" + "end"; KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kconf.setOption( DeclarativeAgendaOption.ENABLED ); KieBase kbase = loadKnowledgeBaseFromString( kconf, str ); KieSession ksession = createKnowledgeSession(kbase); ksession.setGlobal( "list", list ); ksession.insert("fireRules"); ksession.fireAllRules(); System.out.println(list); assertEquals(0, list.size());
@Test public void testRuleSegmentsAllLinkedTestMasks() { setUp( JOIN_NODE ); KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); InternalKnowledgeBase kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(kconf); StatefulKnowledgeSessionImpl wm = new StatefulKnowledgeSessionImpl( 1L, kBase ); PathMemory rs = (PathMemory) wm.getNodeMemory( rtn1 ); assertFalse( rs.isRuleLinked() ); assertEquals( 1, rs.getAllLinkedMaskTest() ); rs = (PathMemory) wm.getNodeMemory( rtn2 ); assertFalse( rs.isRuleLinked() ); assertEquals( 3, rs.getAllLinkedMaskTest() ); rs = (PathMemory) wm.getNodeMemory( rtn3 ); assertFalse( rs.isRuleLinked() ); assertEquals( 7, rs.getAllLinkedMaskTest() ); }
private InternalKnowledgeBase createKnowledgeBase() { KieBaseConfiguration config = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); config.setOption( EventProcessingOption.STREAM ); return (InternalKnowledgeBase)KnowledgeBaseFactory.newKnowledgeBase( config ); }
@Test(timeout=10000) public void testStatedShadowLogicalWithSingleOccurance() { String droolsSource = KieBaseConfiguration kieConf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kieConf.setOption( EqualityBehaviorOption.IDENTITY ); KieBase kbase = loadKnowledgeBaseFromString( kieConf, droolsSource ); KieSession session = kbase.newKieSession(); try { List list = new ArrayList(); session.setGlobal("list", list); InternalFactHandle fh1 = (InternalFactHandle) session.insert( "f1" ); InternalFactHandle fh2 = (InternalFactHandle) session.insert( "f2" ); session.insert( "go1" ); session.fireAllRules(); session.insert( "go2" ); session.fireAllRules(); assertEquals( 1, list.size() ); assertEquals( "f1", list.get( 0 ) ); } finally { session.dispose();
@Test public void testRuleSegmentsAllLinkedTestMasks() { setUp( JOIN_NODE ); KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); InternalKnowledgeBase kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(kconf); StatefulKnowledgeSessionImpl wm = new StatefulKnowledgeSessionImpl( 1L, kBase ); PathMemory rs = (PathMemory) wm.getNodeMemory( rtn1 ); assertFalse( rs.isRuleLinked() ); assertEquals( 1, rs.getAllLinkedMaskTest() ); rs = (PathMemory) wm.getNodeMemory( rtn2 ); assertFalse( rs.isRuleLinked() ); assertEquals( 3, rs.getAllLinkedMaskTest() ); rs = (PathMemory) wm.getNodeMemory( rtn3 ); assertFalse( rs.isRuleLinked() ); assertEquals( 7, rs.getAllLinkedMaskTest() ); }
@Before public void setup() { kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kconf.setOption( SequentialOption.YES ); }
@Test public void testNotInStatelessSession() throws Exception { final KieBaseConfiguration kbc = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kbc.setOption(SequentialOption.YES); final KieBase kbase = SerializationHelper.serializeObject(loadKnowledgeBase(kbc, "test_NotInStatelessSession.drl")); final StatelessKieSession session = kbase.newStatelessKieSession(); final List list = new ArrayList(); session.setGlobal("list", list); session.execute("not integer"); assertEquals("not integer", list.get(0)); }
@Test public void testLiaNodeInitialisation() { setUp( JOIN_NODE ); KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); assertEquals( 1, liaMem.getNodePosMaskBit() ); assertEquals( 3, liaMem.getSegmentMemory().getAllLinkedMaskTest() ); assertEquals( 2, bm1.getNodePosMaskBit() ); assertEquals( 3, bm1.getSegmentMemory().getAllLinkedMaskTest() );
public KieSession getStatefulKnowledgeSession() { String str = ""; str += "package org.domain.test \n"; str += "import " + Match.class.getName() + "\n"; str += "global java.util.List list \n"; str += "dialect 'mvel' \n"; str += "rule rule1 @department(sales) \n"; str += "when \n"; str += " $s : String( this == 'go1' ) \n"; str += "then \n"; str += " list.add( kcontext.rule.name + ':' + $s ); \n"; str += "end \n"; str += "rule blockerAllSalesRules @activationListener('direct') \n"; str += "when \n"; str += " $s : String( this == 'go2' ) \n"; str += " $i : Match( department == 'sales' ) \n"; str += "then \n"; str += " list.add( $i.rule.name + ':' + $s ); \n"; str += " kcontext.blockMatch( $i ); \n"; str += "end \n"; KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kconf.setOption( DeclarativeAgendaOption.ENABLED ); KieBase kbase = loadKnowledgeBaseFromString( kconf, str ); KieSession ksession = createKnowledgeSession(kbase); return ksession; }
@Test public void testRemoveIdentitiesSubNetwork() throws Exception { KieBaseConfiguration conf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); conf.setOption(RemoveIdentitiesOption.YES); workingMemory.setGlobal( "results", list ); workingMemory.insert( bob ); workingMemory.insert( mark ); final FactHandle stilton1Handle = (FactHandle) workingMemory.insert( stilton1 ); final Cheese stilton2 = new Cheese( "stilton", 7 ); final FactHandle stilton2Handle = (FactHandle) workingMemory.insert( stilton2 ); workingMemory.fireAllRules(); assertEquals( 0, list.size() ); workingMemory.fireAllRules(); assertEquals( 2, list.size() );
@Test public void testSegmentNodeReferencesToSegments() { setUp( JOIN_NODE ); KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); InternalKnowledgeBase kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(kconf); StatefulKnowledgeSessionImpl wm = new StatefulKnowledgeSessionImpl( 1L, kBase ); assertEquals( 1, lmem.getNodePosMaskBit() ); assertEquals( 2, bm.getNodePosMaskBit() ); assertEquals( 15, bm.getSegmentMemory().getAllLinkedMaskTest() ); assertEquals( 1, bm.getSegmentMemory().getSegmentPosMaskBit() ); list = bm.getSegmentMemory().getPathMemories();
private KieBase initializeKnowledgeBase( String rule ) { // Setup knowledge base KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newReaderResource(new StringReader(rule)), ResourceType.DRL ); if ( kbuilder.hasErrors() ) { throw new RuntimeException( kbuilder.getErrors().toString() ); } KieBaseConfiguration config = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); config.setOption( EventProcessingOption.STREAM ); InternalKnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase( config ); knowledgeBase.addPackages( kbuilder.getKnowledgePackages() ); return knowledgeBase; }
@Test(timeout=10000) public void testSimpleBlockingUsingForall() { String str = ""; str += "end \n"; KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kconf.setOption( DeclarativeAgendaOption.ENABLED ); KieBase kbase = loadKnowledgeBaseFromString( kconf, str ); KieSession ksession = createKnowledgeSession(kbase); List list = new ArrayList(); ksession.setGlobal( "list", list ); ksession.insert( "go1" ); ksession.fireAllRules(); assertEquals( 2, list.size() ); assertTrue( list.contains("rule1:go1") );
@Test public void testAllLinkedInWithNotNodesOnly() { setUp( NOT_NODE ); assertEquals( NotNode.class, n3.getClass() ); // make sure it created NotNodes KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); InternalKnowledgeBase kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(kconf); StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl)kBase.newKieSession(); BetaMemory bm = (BetaMemory) ksession.getNodeMemory( n3 ); createSegmentMemory( n3, ksession ); assertTrue( bm.getSegmentMemory().isSegmentLinked() ); // not nodes start off linked DefaultFactHandle f1 = (DefaultFactHandle) ksession.insert( "test1" ); // unlinked after first assertion n3.assertObject( f1, context, ksession ); // this doesn't unlink on the assertObject, as the node's memory must be processed. So use the helper method the main network evaluator uses. PhreakNotNode.unlinkNotNodeOnRightInsert( (NotNode) n3, bm, ksession ); assertFalse( bm.getSegmentMemory().isSegmentLinked() ); n3.retractRightTuple( f1.getFirstRightTuple(), context, ksession ); assertTrue( bm.getSegmentMemory().isSegmentLinked() ); //assertFalse( bm.getSegmentMemory().isSigmentLinked() ); // check retraction unlinks again }