[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