[jboss-svn-commits] JBL Code SVN: r17466 - 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
Mon Dec 31 08:52:48 EST 2007
Author: mark.proctor at jboss.com
Date: 2007-12-31 08:52:48 -0500 (Mon, 31 Dec 2007)
New Revision: 17466
Added:
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LocalVariableMVELConsequence.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java
Log:
JBRULES-1397 org.mvel.CompileException: variable already defined within scope
-localvariables is now always created, or cleared, on setcontext.
-createVariables for typed and untyped local variables is now simplified.
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java 2007-12-31 13:49:04 UTC (rev 17465)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java 2007-12-31 13:52:48 UTC (rev 17466)
@@ -16,6 +16,7 @@
import junit.framework.TestCase;
import org.drools.Cheese;
+import org.drools.Person;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
@@ -69,9 +70,37 @@
Date dt = DateUtils.parseDate( "10-Jul-1974" );
assertEquals(dt, c.getUsedBy());
-
-
}
+
+ public void testLocalVariableMVELConsequence() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_LocalVariableMVELConsequence.drl" ) ) );
+ final Package pkg = builder.getPackage();
+
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
+
+ workingMemory.insert( new Person( "bob", "stilton" ) );
+ workingMemory.insert( new Person( "mark", "brie" ) );
+
+ try {
+ workingMemory.fireAllRules();
+
+ assertEquals( "should have fired twice",
+ 2,
+ list.size() );
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail( "Should not raise any exception");
+ }
+
+ }
public Object compiledExecute(String ex) {
Serializable compiled = MVEL.compileExpression(ex);
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LocalVariableMVELConsequence.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LocalVariableMVELConsequence.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LocalVariableMVELConsequence.drl 2007-12-31 13:52:48 UTC (rev 17466)
@@ -0,0 +1,12 @@
+package org.drools;
+
+global java.util.List results;
+
+rule "test local variable in mvel consequence"
+ dialect "mvel"
+ when
+ $p : Person( $likes : likes )
+ then
+ Cheese c = new Cheese( $likes );
+ results.add( c );
+end
\ No newline at end of file
More information about the jboss-svn-commits
mailing list