[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