[jboss-svn-commits] JBL Code SVN: r6007 - in labs/jbossrules/trunk/drools-compiler/src/test: java/org/drools java/org/drools/integrationtests resources/org/drools/integrationtests
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Aug 29 13:16:22 EDT 2006
Author: mark.proctor at jboss.com
Date: 2006-08-29 13:16:19 -0400 (Tue, 29 Aug 2006)
New Revision: 6007
Added:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/FromTestClass.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_FromWithParams.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_From.drl
Log:
JBRULES-339 'from'
-Added unit tests
-Made classes implement getExtractToClass
-MethodDataProvider now uses Collections.singletonList( result ).iterator()
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/FromTestClass.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/FromTestClass.java 2006-08-29 17:15:33 UTC (rev 6006)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/FromTestClass.java 2006-08-29 17:16:19 UTC (rev 6007)
@@ -0,0 +1,15 @@
+package org.drools;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class FromTestClass {
+ public List toList(Object object1, Object object2, String object3, int integer) {
+ List list = new ArrayList();
+ list.add( object1 );
+ list.add( object2 );
+ list.add( object3 );
+ list.add( new Integer( integer ) );
+ return list;
+ }
+}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java 2006-08-29 17:15:33 UTC (rev 6006)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java 2006-08-29 17:16:19 UTC (rev 6007)
@@ -40,6 +40,7 @@
import org.drools.CheeseEqual;
import org.drools.Cheesery;
import org.drools.FactHandle;
+import org.drools.FromTestClass;
import org.drools.IndexedNumber;
import org.drools.Person;
import org.drools.PersonInterface;
@@ -800,19 +801,64 @@
ruleBase.addPackage( pkg );
WorkingMemory workingMemory = ruleBase.newWorkingMemory();
- List list = new ArrayList();
- workingMemory.setGlobal( "list", list );
+ List list1 = new ArrayList();
+ workingMemory.setGlobal( "list1", list1 );
+ List list2 = new ArrayList();
+ workingMemory.setGlobal( "list2", list2 );
+ List list3 = new ArrayList();
+ workingMemory.setGlobal( "list3", list3 );
Cheesery cheesery = new Cheesery();
Cheese stilton = new Cheese( "stilton", 12);
+ Cheese cheddar = new Cheese( "cheddar", 15);
cheesery.addCheese( stilton );
+ cheesery.addCheese( cheddar );
workingMemory.setGlobal( "cheesery", cheesery );
+ workingMemory.assertObject( cheesery );
workingMemory.fireAllRules();
- assertEquals( 1, list.size() );
- }
+ // from using a global
+ assertEquals( 2, list1.size() );
+ assertEquals( cheddar, list1.get( 0 ) );
+ assertEquals( stilton, list1.get( 1 ) );
+
+ // from using a declaration
+ assertEquals( 2, list2.size() );
+ assertEquals( cheddar, list2.get( 0 ) );
+ assertEquals( stilton, list2.get( 1 ) );
+
+ // from using a declaration
+ assertEquals( 1, list3.size() );
+ assertEquals( stilton, list3.get( 0 ) );
+ }
+ public void testFromWithParams() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FromWithParams.drl" ) ) );
+ final Package pkg = builder.getPackage();
+
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+
+ WorkingMemory workingMemory = ruleBase.newWorkingMemory();
+ List list = new ArrayList();
+ workingMemory.setGlobal( "list", list );
+ workingMemory.setGlobal( "testObject", new FromTestClass() );
+
+ Person bob = new Person( "bob" );
+ workingMemory.assertObject( bob );
+
+ workingMemory.fireAllRules();
+
+ assertEquals( new Integer( 42 ), list.get( 0 ) );
+ assertEquals( "literal", list.get( 1 ) );
+ assertSame( bob, list.get( 2 ) );
+ assertSame( list, list.get( 3 ) );
+
+
+ }
+
public void testWithInvalidRule() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "invalid_rule.drl" ) ) );
Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_From.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_From.drl 2006-08-29 17:15:33 UTC (rev 6006)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_From.drl 2006-08-29 17:16:19 UTC (rev 6007)
@@ -6,13 +6,31 @@
import org.drools.Cheesery;
import java.util.List;
-global List list;
+global List list1;
+global List list2;
+global List list3;
global Cheesery cheesery;
-rule "test from"
+rule "test from using a global"
when
$cheese : Cheese() from cheesery.getCheeses()
then
- System.out.println( list );
- list.add( $cheese );
+ list1.add( $cheese );
end
+
+
+rule "test from using a declaration"
+ when
+ $ch : Cheesery()
+ $cheese : Cheese() from $ch.getCheeses()
+ then
+ list2.add( $cheese );
+end
+
+
+rule "test from with filter"
+ when
+ $cheese : Cheese(type == "stilton" ) from cheesery.getCheeses()
+ then
+ list3.add( $cheese );
+end
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_FromWithParams.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_FromWithParams.drl 2006-08-29 17:15:33 UTC (rev 6006)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_FromWithParams.drl 2006-08-29 17:16:19 UTC (rev 6007)
@@ -0,0 +1,15 @@
+package org.drools.test;
+
+import org.drools.FromTestClass;
+import org.drools.Person
+
+global FromTestClass testObject;
+global java.util.List list;
+
+rule "test from"
+ when
+ $person : Person()
+ $object : Object() from testObject.toList(list, $person, "literal", 42)
+ then
+ list.add( $object );
+end
More information about the jboss-svn-commits
mailing list