[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