[jboss-svn-commits] JBL Code SVN: r13667 - labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/test/java/org/drools/integrationtests.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jul 20 05:42:39 EDT 2007


Author: pombredanne
Date: 2007-07-20 05:42:38 -0400 (Fri, 20 Jul 2007)
New Revision: 13667

Modified:
   labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java
Log:
Ported from trunk to branch mvel-tooling-2007-06-30. for a change that did not make in the last merge. weird.

Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java	2007-07-20 09:19:22 UTC (rev 13666)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java	2007-07-20 09:42:38 UTC (rev 13667)
@@ -552,7 +552,7 @@
     public void testRuleFlow() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.drl" ) ) );
-        builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rf" ) ) );
+        builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rfm" ) ) );
         final Package pkg = builder.getPackage();
         final RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
@@ -584,10 +584,62 @@
                       processInstance.getState() );
     }
     
+    public void testRuleFlowClear() throws Exception {
+        final PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ruleflowClear.drl" ) ) );
+        builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "test_ruleflowClear.rfm" ) ) );
+        final Package pkg = builder.getPackage();
+        final RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage( pkg );
+
+        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+        final List list = new ArrayList();
+        workingMemory.setGlobal( "list",
+                                 list );
+        
+        final List activations = new ArrayList();
+        AgendaEventListener listener = new DefaultAgendaEventListener() {            
+            public void activationCancelled(ActivationCancelledEvent event,
+                                            WorkingMemory workingMemory) {
+                activations.add( event.getActivation() );
+            }
+        };
+        
+        workingMemory.addEventListener( listener );
+     
+        assertEquals( 0 , workingMemory.getAgenda().getRuleFlowGroup( "flowgroup-1" ).size() );
+        
+        // We need to call fireAllRules here to get the InitialFact into the system, to the eval(true)'s kick in
+        workingMemory.fireAllRules();
+        
+        // Now we have 4 in the RuleFlow, but not yet in the agenda
+        assertEquals( 4 , workingMemory.getAgenda().getRuleFlowGroup( "flowgroup-1" ).size() );
+        
+        // Check they aren't in the Agenda
+        assertEquals( 0, workingMemory.getAgenda().getAgendaGroup( "MAIN" ).size() );
+        
+        // Start the process, which shoudl populate the Agenda
+        final ProcessInstance processInstance = workingMemory.startProcess( "ruleFlowClear" );
+        assertEquals( 4, workingMemory.getAgenda().getAgendaGroup( "MAIN" ).size() );
+        
+        
+        // Check we have 0 activation cancellation events
+        assertEquals( 0, activations.size() );
+        
+        workingMemory.getAgenda().clearRuleFlowGroup( "flowgroup-1" );
+        
+        // Check the AgendaGroup and RuleFlowGroup  are now empty
+        assertEquals( 0, workingMemory.getAgenda().getAgendaGroup( "MAIN" ).size() );
+        assertEquals( 0 , workingMemory.getAgenda().getRuleFlowGroup( "flowgroup-1" ).size() );
+        
+        // Check we have four activation cancellation events
+        assertEquals( 4, activations.size() );              
+    }
+    
     public void testRuleFlowInPackage() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.drl" ) ) );
-        builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rf" ) ) );
+        builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rfm" ) ) );
         final Package pkg = builder.getPackage();
 
         final RuleBase ruleBase = getRuleBase();




More information about the jboss-svn-commits mailing list