[jboss-svn-commits] JBL Code SVN: r7522 - in labs/jbossrules/branches/3.0.x: drools-compiler/src/test/java/org/drools/integrationtests drools-compiler/src/test/resources/org/drools/integrationtests drools-core/src/main/java/org/drools/rule

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Nov 9 15:23:23 EST 2006


Author: tirelli
Date: 2006-11-09 15:23:11 -0500 (Thu, 09 Nov 2006)
New Revision: 7522

Added:
   labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_ReturnValueAndGlobal.drl
Modified:
   labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
   labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java
Log:
JBRULES-505: fixing ReturnValueConstraint equals method to allow for correct RETE building

Modified: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2006-11-09 20:19:14 UTC (rev 7521)
+++ labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2006-11-09 20:23:11 UTC (rev 7522)
@@ -64,6 +64,8 @@
 import org.drools.event.AfterActivationFiredEvent;
 import org.drools.event.AgendaEventListener;
 import org.drools.event.BeforeActivationFiredEvent;
+import org.drools.event.DebugAgendaEventListener;
+import org.drools.event.DebugWorkingMemoryEventListener;
 import org.drools.event.DefaultAgendaEventListener;
 import org.drools.integrationtests.helloworld.Message;
 import org.drools.lang.DrlDumper;
@@ -3011,4 +3013,45 @@
         assertEquals( 2,
                       queryResults.size() );
     }
+
+    public void testReturnValueAndGlobal() throws Exception {
+
+        final PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ReturnValueAndGlobal.drl" ) ) );
+        final Package pkg = builder.getPackage();
+
+        final RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage( pkg );
+        final WorkingMemory workingMemory = ruleBase.newWorkingMemory();
+
+        final List matchlist = new ArrayList();
+        workingMemory.setGlobal( "matchingList",
+                                 matchlist );
+
+        final List nonmatchlist = new ArrayList();
+        workingMemory.setGlobal( "nonMatchingList",
+                                 nonmatchlist );
+
+        workingMemory.setGlobal( "cheeseType",
+                                 "stilton" );
+
+        final Cheese stilton1 = new Cheese( "stilton",
+                                           5 );
+        final Cheese stilton2 = new Cheese( "stilton",
+                                           7 );
+        final Cheese brie = new Cheese( "brie",
+                                           4 );
+        workingMemory.assertObject( stilton1 );
+        workingMemory.assertObject( stilton2 );
+        workingMemory.assertObject( brie );
+
+        workingMemory.fireAllRules();
+
+        assertEquals( 2,
+                      matchlist.size() );
+        assertEquals( 1,
+                      nonmatchlist.size() );
+    }
+
+
 }

Added: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_ReturnValueAndGlobal.drl
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_ReturnValueAndGlobal.drl	2006-11-09 20:19:14 UTC (rev 7521)
+++ labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_ReturnValueAndGlobal.drl	2006-11-09 20:23:11 UTC (rev 7522)
@@ -0,0 +1,20 @@
+package org.drools;
+
+global java.lang.String cheeseType;
+global java.util.List   matchingList;
+global java.util.List   nonMatchingList;
+
+
+rule "Match type"
+	when
+		$cheese : Cheese( type == (cheeseType) )
+	then
+		matchingList.add( $cheese );
+end
+
+rule "Non matching type"
+	when
+		$cheese : Cheese( type != (cheeseType) )
+	then
+		nonMatchingList.add( $cheese );
+end


Property changes on: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_ReturnValueAndGlobal.drl
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:eol-style
   + native

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java	2006-11-09 20:19:14 UTC (rev 7521)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java	2006-11-09 20:23:11 UTC (rev 7522)
@@ -122,8 +122,8 @@
         	if ( !this.requiredDeclarations[i].getExtractor().equals( other.requiredDeclarations[i].getExtractor() ) ) {
         		return false;
         	}        	
-        }        
-
-        return this.expression.equals( other.expression );
+        }       
+        
+        return this.evaluator.equals( other.evaluator ) && this.expression.equals( other.expression );
     }
 }
\ No newline at end of file




More information about the jboss-svn-commits mailing list