[jboss-svn-commits] JBL Code SVN: r12900 - in labs/jbossrules/trunk/drools-compiler/src/test: resources/org/drools/integrationtests and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jun 27 16:37:19 EDT 2007
Author: tirelli
Date: 2007-06-27 16:37:19 -0400 (Wed, 27 Jun 2007)
New Revision: 12900
Added:
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_AccumulateWithFromChaining.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java
Log:
JBRULES-546: adding another test for 'accumulate' with 'from' chaining
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java 2007-06-27 20:30:40 UTC (rev 12899)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java 2007-06-27 20:37:19 UTC (rev 12900)
@@ -682,4 +682,78 @@
}
+ public void testAccumulateWithFromChaining() throws Exception {
+ // read in the source
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_AccumulateWithFromChaining.drl" ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+
+ final WorkingMemory wm = ruleBase.newStatefulSession();
+ final List results = new ArrayList();
+
+ wm.setGlobal( "results",
+ results );
+
+ final Cheese[] cheese = new Cheese[]{new Cheese( "stilton",
+ 8 ), new Cheese( "stilton",
+ 10 ), new Cheese( "stilton",
+ 9 ), new Cheese( "brie",
+ 4 ), new Cheese( "brie",
+ 1 ), new Cheese( "provolone",
+ 8 )};
+
+ Cheesery cheesery = new Cheesery();
+
+ for( int i = 0; i < cheese.length; i++ ) {
+ cheesery.addCheese( cheese[i] );
+ }
+
+ FactHandle cheeseryHandle = wm.insert( cheesery );
+
+ final Person bob = new Person( "Bob",
+ "stilton" );
+
+ final FactHandle bobHandle = wm.insert( bob );
+
+ // ---------------- 1st scenario
+ wm.fireAllRules();
+ // one fire, as per rule constraints
+ Assert.assertEquals( 1,
+ results.size() );
+ Assert.assertEquals( 3,
+ ((List) results.get( results.size() - 1 )).size() );
+
+ // ---------------- 2nd scenario
+ final int index = 1;
+ cheese[index].setType( "brie" );
+ wm.update( cheeseryHandle,
+ cheesery );
+ wm.fireAllRules();
+
+ // no fire
+ Assert.assertEquals( 1,
+ results.size() );
+
+ // ---------------- 3rd scenario
+ bob.setLikes( "brie" );
+ wm.update( bobHandle,
+ bob );
+ wm.fireAllRules();
+
+ // 2 fires
+ Assert.assertEquals( 2,
+ results.size() );
+ Assert.assertEquals( 3,
+ ((List) results.get( results.size() - 1 )).size() );
+
+ // ---------------- 4th scenario
+ cheesery.getCheeses().remove( cheese[3] );
+ wm.update( cheeseryHandle,
+ cheesery );
+ wm.fireAllRules();
+
+ // should not have fired as per constraint
+ Assert.assertEquals( 2,
+ results.size() );
+
+ }
}
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_AccumulateWithFromChaining.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_AccumulateWithFromChaining.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_AccumulateWithFromChaining.drl 2007-06-27 20:37:19 UTC (rev 12900)
@@ -0,0 +1,19 @@
+package org.drools;
+
+import java.util.List;
+import java.util.ArrayList;
+
+global java.util.List results;
+
+rule "Accumulate with From Chaining" salience 80
+ when
+ $cheesery : Cheesery()
+ $person : Person( $likes : likes )
+ $list : List( size > 2 )
+ from accumulate( $cheese : Cheese( type == $likes ) from $cheesery.getCheeses(),
+ init( List l = new ArrayList(); ),
+ action( l.add( $cheese ); )
+ result( l ) )
+ then
+ results.add( $list );
+end
Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_AccumulateWithFromChaining.drl
___________________________________________________________________
Name: svn:executable
+ *
More information about the jboss-svn-commits
mailing list