[jboss-svn-commits] JBL Code SVN: r11896 - labs/jbossrules/trunk/experimental/drools-testing/src/org/drools/testing/core/engine.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed May 16 09:28:11 EDT 2007


Author: mshaw
Date: 2007-05-16 09:28:11 -0400 (Wed, 16 May 2007)
New Revision: 11896

Modified:
   labs/jbossrules/trunk/experimental/drools-testing/src/org/drools/testing/core/engine/TestRunner.java
Log:


Modified: labs/jbossrules/trunk/experimental/drools-testing/src/org/drools/testing/core/engine/TestRunner.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-testing/src/org/drools/testing/core/engine/TestRunner.java	2007-05-16 13:16:21 UTC (rev 11895)
+++ labs/jbossrules/trunk/experimental/drools-testing/src/org/drools/testing/core/engine/TestRunner.java	2007-05-16 13:28:11 UTC (rev 11896)
@@ -1,12 +1,17 @@
 package org.drools.testing.core.engine;
 
+import java.util.ArrayList;
+import java.util.Collection;
+
 import org.apache.commons.beanutils.PropertyUtils;
 import org.drools.WorkingMemory;
 import org.drools.rule.Package;
 import org.drools.testing.core.exception.RuleTestLanguageException;
 import org.drools.testing.core.exception.RuleTestServiceUnavailableException;
+import org.drools.testing.core.filters.MultipleRuleAgendaFilter;
 import org.drools.testing.core.model.Fact;
 import org.drools.testing.core.model.Field;
+import org.drools.testing.core.model.Rule;
 import org.drools.testing.core.model.Scenario;
 import org.drools.testing.core.utils.ObjectUtils;
 import org.drools.testing.core.wrapper.RuleBaseWrapper;
@@ -79,7 +84,9 @@
 		// create the working memory
 		WorkingMemory wm = RuleBaseWrapper.getInstance().getRuleBase().newWorkingMemory(true);
 		parseFacts(scenario.getFacts(), wm);
-		
+		Collection rules = specifyRulesToFire(scenario.getRules(), wm);
+		// fire the rules
+		wm.fireAllRules(new MultipleRuleAgendaFilter(rules));
 	}
 	
 	/**
@@ -118,4 +125,21 @@
 			wm.assertObject(fact);
 		}
 	}
+	
+	/**
+	 * add the multipleRuleNameAgenda filter to the working memory
+	 * 
+	 * @param rules
+	 * @param wm
+	 * @throws RuleTestLanguageException
+	 */
+	private Collection specifyRulesToFire (Rule[] rules, WorkingMemory wm) throws RuleTestLanguageException {
+		
+		Collection items = new ArrayList();
+		for (int i=0; i<rules.length; i++) {
+			if (rules[i].isFire())
+				items.add(rules[i].getName());
+		}
+		return items;
+	}
 }




More information about the jboss-svn-commits mailing list