[jboss-svn-commits] JBL Code SVN: r24764 - labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Jan 18 15:08:32 EST 2009
Author: mark.proctor at jboss.com
Date: 2009-01-18 15:08:31 -0500 (Sun, 18 Jan 2009)
New Revision: 24764
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/MiscTest.java
Log:
JBRULES-1631 Validation error message when using operator += in RHS.
-Added unit test to show that this isn't an issue for MVEL or Java dialect.
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 2009-01-18 19:22:05 UTC (rev 24763)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java 2009-01-18 20:08:31 UTC (rev 24764)
@@ -13,19 +13,26 @@
import junit.framework.TestCase;
import org.drools.Cheese;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
import org.drools.Person;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.StatefulSession;
import org.drools.WorkingMemory;
import org.drools.base.mvel.MVELDebugHandler;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceType;
import org.drools.compiler.DrlParser;
import org.drools.compiler.DroolsParserException;
import org.drools.compiler.PackageBuilder;
import org.drools.compiler.PackageBuilderConfiguration;
+import org.drools.io.ResourceFactory;
import org.drools.lang.descr.PackageDescr;
import org.drools.rule.Package;
import org.drools.rule.builder.dialect.mvel.MVELDialect;
+import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.util.DateUtils;
import org.mvel2.MVEL;
@@ -58,6 +65,40 @@
Date dt = DateUtils.parseDate( "10-Jul-1974" );
assertEquals(dt, c.getUsedBy());
}
+
+ public void testIncrementOperator() throws Exception {
+ String str = "";
+ str += "package org.drools \n";
+ str += "global java.util.List list \n";
+ str += "rule rule1 \n";
+ str += " dialect \"mvel\" \n";
+ str += "when \n";
+ str += " $I : Integer() \n";
+ str += "then \n";
+ str += " i = $I.intValue(); \n";
+ str += " i += 5; \n";
+ str += " list.add( i ); \n";
+ str += "end \n";
+
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
+
+ assertFalse( kbuilder.hasErrors() );
+
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+ List list = new ArrayList();
+ ksession.setGlobal( "list", list );
+ ksession.insert( 5 );
+
+ ksession.fireAllRules();
+
+ assertEquals( 1, list.size() );
+ assertEquals( 10, list.get( 0 ) );
+ }
public void testLocalVariableMVELConsequence() throws Exception {
final PackageBuilder builder = new PackageBuilder();
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2009-01-18 19:22:05 UTC (rev 24763)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2009-01-18 20:08:31 UTC (rev 24764)
@@ -488,6 +488,43 @@
assertEquals( "rule 2 executed boo",
list.get( 1 ) );
}
+
+ public void testIncrementOperator() throws Exception {
+ String str = "";
+ str += "package org.drools \n";
+ str += "global java.util.List list \n";
+ str += "rule rule1 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += " $I : Integer() \n";
+ str += "then \n";
+ str += " int i = $I.intValue(); \n";
+ str += " i += 5; \n";
+ str += " list.add( i ); \n";
+ str += "end \n";
+
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+
+ kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
+ System.err.println( kbuilder.getErrors() );
+ }
+ assertFalse( kbuilder.hasErrors() );
+
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+ List list = new ArrayList();
+ ksession.setGlobal( "list", list );
+ ksession.insert( 5 );
+
+ ksession.fireAllRules();
+
+ assertEquals( 1, list.size() );
+ assertEquals( 10, list.get( 0 ) );
+ }
public void testCustomGlobalResolver() throws Exception {
final PackageBuilder builder = new PackageBuilder();
More information about the jboss-svn-commits
mailing list