[jboss-svn-commits] JBL Code SVN: r24769 - 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 18:54:18 EST 2009
Author: mark.proctor at jboss.com
Date: 2009-01-18 18:54:16 -0500 (Sun, 18 Jan 2009)
New Revision: 24769
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-1654 eval() Incorrectly Evaluating BigDecimal to False
-Added unit test to show this isn't broken in 5.0.x
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 23:35:33 UTC (rev 24768)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java 2009-01-18 23:54:16 UTC (rev 24769)
@@ -4,6 +4,7 @@
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -99,6 +100,43 @@
assertEquals( 1, list.size() );
assertEquals( 10, list.get( 0 ) );
}
+
+ public void testEvalWithBigDecimal() throws Exception {
+ String str = "";
+ str += "package org.drools \n";
+ str += "import java.math.BigDecimal; \n";
+ str += "global java.util.List list \n";
+ str += "rule rule1 \n";
+ str += " dialect \"mvel\" \n";
+ str += "when \n";
+ str += " $bd : BigDecimal() \n";
+ str += " eval( $bd.compareTo( BigDecimal.ZERO ) > 0 ) \n";
+ str += "then \n";
+ str += " list.add( $bd ); \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( new BigDecimal( 1.5 ) );
+
+ ksession.fireAllRules();
+
+ assertEquals( 1, list.size() );
+ assertEquals( new BigDecimal( 1.5 ), 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 23:35:33 UTC (rev 24768)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2009-01-18 23:54:16 UTC (rev 24769)
@@ -524,7 +524,44 @@
assertEquals( 1, list.size() );
assertEquals( 10, list.get( 0 ) );
- }
+ }
+
+ public void testEvalWithBigDecimal() throws Exception {
+ String str = "";
+ str += "package org.drools \n";
+ str += "import java.math.BigDecimal; \n";
+ str += "global java.util.List list \n";
+ str += "rule rule1 \n";
+ str += " dialect \"java\" \n";
+ str += "when \n";
+ str += " $bd : BigDecimal() \n";
+ str += " eval( $bd.compareTo( BigDecimal.ZERO ) > 0 ) \n";
+ str += "then \n";
+ str += " list.add( $bd ); \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( new BigDecimal( 1.5 ) );
+
+ ksession.fireAllRules();
+
+ assertEquals( 1, list.size() );
+ assertEquals( new BigDecimal( 1.5 ), list.get( 0 ) );
+ }
public void testCustomGlobalResolver() throws Exception {
final PackageBuilder builder = new PackageBuilder();
More information about the jboss-svn-commits
mailing list