[jboss-svn-commits] JBL Code SVN: r18861 - in labs/jbossrules/trunk/drools-compiler/src/test: java/org/drools/integrationtests and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Mar 11 21:33:05 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-03-11 21:33:05 -0400 (Tue, 11 Mar 2008)
New Revision: 18861
Added:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/DomainObject.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/DomainObjectHolder.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_FromArrayIteration.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
JBRULES-1446 ClassCastException when iterating over an array using "from"
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/DomainObject.java (from rev 18860, labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/DomainObject.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/DomainObject.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/DomainObject.java 2008-03-12 01:33:05 UTC (rev 18861)
@@ -0,0 +1,33 @@
+package org.drools;
+
+public class DomainObject {
+
+ private String message;
+ private int value;
+ private double value2;
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public void setValue(int value) {
+ this.value = value;
+ }
+
+ public double getValue2() {
+ return value2;
+ }
+
+ public void setValue2(double value2) {
+ this.value2 = value2;
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/DomainObjectHolder.java (from rev 18860, labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/DomainObjectHolder.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/DomainObjectHolder.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/DomainObjectHolder.java 2008-03-12 01:33:05 UTC (rev 18861)
@@ -0,0 +1,29 @@
+package org.drools;
+
+public class DomainObjectHolder {
+
+ DomainObject[] objects = new DomainObject[3];
+
+ public DomainObjectHolder(){
+
+ objects[0] = new DomainObject();
+ objects[0].setMessage("Message1");
+ objects[0].setValue(1);
+ objects[0].setValue2(2);
+
+ objects[1] = new DomainObject();
+ objects[1].setMessage("Message2");
+ objects[1].setValue(3);
+ objects[1].setValue2(4);
+
+ objects[2] = new DomainObject();
+ objects[2].setMessage("Message3");
+ objects[2].setValue(5);
+ objects[2].setValue2(6);
+ }
+
+ public DomainObject[] getObjects(){
+ return objects;
+ }
+
+ }
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 2008-03-12 01:01:36 UTC (rev 18860)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-03-12 01:33:05 UTC (rev 18861)
@@ -46,6 +46,7 @@
import org.drools.CheeseEqual;
import org.drools.Cheesery;
import org.drools.Child;
+import org.drools.DomainObjectHolder;
import org.drools.FactA;
import org.drools.FactB;
import org.drools.FactC;
@@ -4234,7 +4235,30 @@
assertSame( order1.getStatus(),
list.get( 0 ) );
}
+
+ public void testFromArrayIteration() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FromArrayIteration.drl" ) ) );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
+
+ final WorkingMemory session = ruleBase.newStatefulSession();
+ List list = new ArrayList();
+
+ session.setGlobal( "list", list );
+ session.insert( new DomainObjectHolder() );
+
+ session.fireAllRules();
+
+ assertEquals( 3, list.size() );
+
+ assertEquals( "Message3" , list.get(0));
+ assertEquals( "Message2" , list.get(1));
+ assertEquals( "Message1" , list.get(2));
+
+ }
+
public void testSubNetworks() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_SubNetworks.drl" ) ) );
@@ -4452,8 +4476,8 @@
assertEquals( "should not have fired",
0,
list.size() );
- }
-
+ }
+
public void testModifyRetractAndModifyInsert() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ModifyRetractInsert.drl" ) ) );
@@ -4505,8 +4529,7 @@
assertEquals( 10, c.getPrice() );
assertEquals( "fine", bob.getStatus() );
- }
-
+ }
// this test requires mvel 1.2.19. Leaving it commented until mvel is released.
public void testJavaModifyBlock() throws Exception {
Copied: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_FromArrayIteration.drl (from rev 18860, labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_FromArrayIteration.drl)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_FromArrayIteration.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_FromArrayIteration.drl 2008-03-12 01:33:05 UTC (rev 18861)
@@ -0,0 +1,14 @@
+package org.drools.test;
+
+import org.drools.DomainObject
+import org.drools.DomainObjectHolder;
+
+global java.util.List list
+
+rule "Test Rule"
+when
+ $holder : DomainObjectHolder()
+ $object : DomainObject( $message : message) from $holder.objects;
+then
+ list.add( $message );
+end
\ No newline at end of file
More information about the jboss-svn-commits
mailing list