[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