[jboss-svn-commits] JBL Code SVN: r10806 - in labs/jbossrules/trunk/drools-compiler/src/test: resources/org/drools/integrationtests and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Apr 7 08:06:27 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-04-07 08:06:27 -0400 (Sat, 07 Apr 2007)
New Revision: 10806

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_EventModel.drl
Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
Log:
JBRULES-771 Expose agenda group events
-added support for events on pushed/popped agenda groups with integration test, although still needs unit test.

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2007-04-07 06:13:41 UTC (rev 10805)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2007-04-07 12:06:27 UTC (rev 10806)
@@ -79,8 +79,15 @@
 import org.drools.event.ActivationCreatedEvent;
 import org.drools.event.AfterActivationFiredEvent;
 import org.drools.event.AgendaEventListener;
+import org.drools.event.AgendaGroupPoppedEvent;
+import org.drools.event.AgendaGroupPushedEvent;
 import org.drools.event.BeforeActivationFiredEvent;
 import org.drools.event.DefaultAgendaEventListener;
+import org.drools.event.DefaultWorkingMemoryEventListener;
+import org.drools.event.ObjectAssertedEvent;
+import org.drools.event.ObjectModifiedEvent;
+import org.drools.event.ObjectRetractedEvent;
+import org.drools.event.WorkingMemoryEventListener;
 import org.drools.facttemplates.Fact;
 import org.drools.facttemplates.FactTemplate;
 import org.drools.integrationtests.helloworld.Message;
@@ -4302,7 +4309,91 @@
         assertEquals( 2,
                       results.size() );
     }
+    
+    public void testEventModel() throws Exception  {
+        final PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_EventModel.drl" ) ) );
+        final Package pkg = builder.getPackage();
 
+        final RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage( pkg );
+        final WorkingMemory wm = ruleBase.newWorkingMemory();        
+        
+        final List agendaList = new ArrayList();
+        AgendaEventListener agendaEventListener = new AgendaEventListener() {
+
+            public void activationCancelled(ActivationCancelledEvent event,
+                                            WorkingMemory workingMemory) {
+                agendaList.add( event );
+                
+            }
+
+            public void activationCreated(ActivationCreatedEvent event,
+                                          WorkingMemory workingMemory) {
+                agendaList.add( event );
+            }
+
+            public void afterActivationFired(AfterActivationFiredEvent event,
+                                             WorkingMemory workingMemory) {
+                agendaList.add( event );
+            }
+
+            public void agendaGroupPopped(AgendaGroupPoppedEvent event,
+                                          WorkingMemory workingMemory) {
+                agendaList.add( event );
+            }
+
+            public void agendaGroupPushed(AgendaGroupPushedEvent event,
+                                          WorkingMemory workingMemory) {
+                agendaList.add( event );
+            }
+
+            public void beforeActivationFired(BeforeActivationFiredEvent event,
+                                              WorkingMemory workingMemory) {
+                agendaList.add( event );
+            }
+           
+        };
+        
+        final List wmList = new ArrayList();
+        WorkingMemoryEventListener workingMemoryListener = new WorkingMemoryEventListener() {
+
+            public void objectAsserted(ObjectAssertedEvent event) {
+                wmList.add( event );                
+            }
+
+            public void objectModified(ObjectModifiedEvent event) {
+                wmList.add( event );
+            }
+
+            public void objectRetracted(ObjectRetractedEvent event) {
+                wmList.add( event );
+            }
+            
+        };
+        
+        wm.addEventListener( workingMemoryListener );
+        
+        Cheese stilton = new Cheese("stilton",15);
+        Cheese cheddar = new Cheese("cheddar",17);
+        
+        FactHandle stiltonHandle = wm.assertObject( stilton );
+        
+        ObjectAssertedEvent oae = (ObjectAssertedEvent) wmList.get( 0 );
+        assertSame(  stiltonHandle, oae.getFactHandle() );
+        
+        wm.modifyObject( stiltonHandle, stilton );
+        ObjectModifiedEvent ome = (ObjectModifiedEvent) wmList.get( 1 );
+        assertSame( stiltonHandle, ome.getFactHandle() );                
+        
+        wm.retractObject( stiltonHandle );
+        ObjectRetractedEvent ore = (ObjectRetractedEvent) wmList.get( 2 );
+        assertSame( stiltonHandle, ore.getFactHandle() );
+        
+        
+        wm.assertObject( cheddar );        
+    }
+
     public void testImplicitDeclarations() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_implicitDeclarations.drl" ) ) );

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_EventModel.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_EventModel.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_EventModel.drl	2007-04-07 12:06:27 UTC (rev 10806)
@@ -0,0 +1,19 @@
+package org.drools.test;
+ 
+import org.drools.Cheese;
+
+rule "simple rule 1"
+	agenda-group "agenda group 1"
+    when
+        cheese : Cheese( type == "stilton" )
+    then
+end 
+
+
+
+rule "simple rule 2"
+	agenda-group "agenda group 2"
+    when
+        cheese : Cheese( type == "cheddar" )
+    then
+end 
\ No newline at end of file




More information about the jboss-svn-commits mailing list