[jboss-svn-commits] JBL Code SVN: r18860 - in labs/jbossrules/branches/4.0.x/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:01:36 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-03-11 21:01:36 -0400 (Tue, 11 Mar 2008)
New Revision: 18860
Added:
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/DomainObject.java
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/DomainObjectHolder.java
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_FromArrayIteration.drl
Modified:
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
JBRULES-1446 ClassCastException when iterating over an array using "from"
Added: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/DomainObject.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/DomainObject.java (rev 0)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/DomainObject.java 2008-03-12 01:01:36 UTC (rev 18860)
@@ -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;
+ }
+
+}
Added: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/DomainObjectHolder.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/DomainObjectHolder.java (rev 0)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/DomainObjectHolder.java 2008-03-12 01:01:36 UTC (rev 18860)
@@ -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/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-03-12 01:01:24 UTC (rev 18859)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-03-12 01:01:36 UTC (rev 18860)
@@ -45,6 +45,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;
@@ -4248,7 +4249,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" ) ) );
@@ -4466,37 +4490,35 @@
assertEquals( "should not have fired",
0,
list.size() );
- }
+ }
+
+ public void testModifyBlock() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ModifyBlock.drl" ) ) );
+ final Package pkg = builder.getPackage();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- public void testModifyBlock() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ModifyBlock.drl" ) ) );
- final Package pkg = builder.getPackage();
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ Person bob = new Person( "Bob" );
+ bob.setStatus( "hungry" );
- final List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ Cheese c = new Cheese();
- Person bob = new Person( "Bob" );
- bob.setStatus( "hungry" );
+ workingMemory.insert( bob );
+ workingMemory.insert( c );
- Cheese c = new Cheese();
+ workingMemory.fireAllRules();
- workingMemory.insert( bob );
- workingMemory.insert( c );
-
- workingMemory.fireAllRules();
-
- assertEquals( 10, c.getPrice() );
- assertEquals( "fine", bob.getStatus() );
- }
-
-
+ 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 {
final PackageBuilder builder = new PackageBuilder();
Added: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_FromArrayIteration.drl
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_FromArrayIteration.drl (rev 0)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_FromArrayIteration.drl 2008-03-12 01:01:36 UTC (rev 18860)
@@ -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