agenda.evaluateEagerList();
private void evaluateEagerList(KieSession ksession) { ((InternalWorkingMemory) ksession).flushPropagations(); ((InternalAgenda) ksession.getAgenda()).evaluateEagerList(); }
@Test(timeout=10000) public void testJBRULES_2206() { KieBaseConfiguration config = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); ((RuleBaseConfiguration) config).setRuleBaseUpdateHandler( null ); InternalKnowledgeBase kbase = (InternalKnowledgeBase) getKnowledgeBase( config ); KieSession session = createKnowledgeSession( kbase ); AgendaEventListener ael = mock( AgendaEventListener.class ); session.addEventListener( ael ); for ( int i = 0; i < 5; i++ ) { session.insert( new Cheese() ); } kbase.addPackages( loadKnowledgePackages( "test_JBRULES_2206_1.drl" )); ((InternalAgenda) session.getAgenda()).evaluateEagerList(); // two matching rules were added, so 2 activations should have been created verify( ael, times( 2 ) ).matchCreated(any(MatchCreatedEvent.class)); int fireCount = session.fireAllRules(); // both should have fired assertEquals( 2, fireCount ); kbase.addPackages( loadKnowledgePackages( "test_JBRULES_2206_2.drl" )); ((InternalAgenda) session.getAgenda()).evaluateEagerList(); // one rule was overridden and should activate verify( ael, times( 3 ) ).matchCreated(any(MatchCreatedEvent.class)); fireCount = session.fireAllRules(); // that rule should fire again assertEquals( 1, fireCount ); session.dispose(); }
agenda.evaluateEagerList(); cheddar); agenda.evaluateEagerList();
((InternalAgenda) ksession.getAgenda()).evaluateEagerList();
@Test(timeout=10000) @Ignore public void testJBRULES_2206() { KieBaseConfiguration config = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); ((RuleBaseConfiguration) config).setRuleBaseUpdateHandler( null ); KnowledgeBase kbase = getKnowledgeBase(config); StatefulKnowledgeSession session = createKnowledgeSession( kbase ); AgendaEventListener ael = mock( AgendaEventListener.class ); session.addEventListener( ael ); for ( int i = 0; i < 5; i++ ) { session.insert( new Cheese() ); } kbase.addKnowledgePackages( loadKnowledgePackages( "test_JBRULES_2206_1.drl" )); ((InternalAgenda) session.getAgenda()).evaluateEagerList(); // two matching rules were added, so 2 activations should have been created verify( ael, times( 2 ) ).matchCreated(any(MatchCreatedEvent.class)); int fireCount = session.fireAllRules(); // both should have fired assertEquals( 2, fireCount ); kbase.addKnowledgePackages( loadKnowledgePackages( "test_JBRULES_2206_2.drl" )); ((InternalAgenda) session.getAgenda()).evaluateEagerList(); // one rule was overridden and should activate verify( ael, times( 3 ) ).matchCreated(any(MatchCreatedEvent.class)); fireCount = session.fireAllRules(); // that rule should fire again assertEquals( 1, fireCount ); session.dispose(); }