[jboss-svn-commits] JBL Code SVN: r15996 - in labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools: testframework and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Oct 22 22:01:01 EDT 2007


Author: michael.neale at jboss.com
Date: 2007-10-22 22:01:01 -0400 (Mon, 22 Oct 2007)
New Revision: 15996

Added:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyRuleFired.java
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java
Log:
JBRULES-1271 execution trace stuff

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java	2007-10-23 01:49:17 UTC (rev 15995)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java	2007-10-23 02:01:01 UTC (rev 15996)
@@ -10,6 +10,7 @@
  */
 public class Scenario implements Serializable {
 
+	public int		maxRuleFirings = 100000;
 	public FactData[] facts = new FactData[0];
 	public Assertion[] assertions = new Assertion[0];
 	public ScenarioRules ruleTrace = new ScenarioRules();

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyRuleFired.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyRuleFired.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyRuleFired.java	2007-10-23 02:01:01 UTC (rev 15996)
@@ -0,0 +1,13 @@
+package org.drools.brms.client.modeldriven.testing;
+
+public class VerifyRuleFired implements Assertion {
+
+	public String ruleName;
+	public Integer expectedCount;
+	public Boolean expectNotFire;
+	public Boolean expectFire;
+
+	public Boolean success;
+	public Integer actual;
+
+}


Property changes on: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyRuleFired.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java	2007-10-23 01:49:17 UTC (rev 15995)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java	2007-10-23 02:01:01 UTC (rev 15996)
@@ -17,6 +17,7 @@
 import org.drools.brms.client.modeldriven.testing.FactData;
 import org.drools.brms.client.modeldriven.testing.FieldData;
 import org.drools.brms.client.modeldriven.testing.Scenario;
+import org.drools.brms.client.modeldriven.testing.VerifyRuleFired;
 
 /**
  * This actually runs the test scenarios.
@@ -56,18 +57,35 @@
 		HashSet<String> ruleList = new HashSet<String>();
 		ruleList.addAll(Arrays.asList(scenario.ruleTrace.rules));
 		TestingEventListener listener = new TestingEventListener(ruleList, wm.getRuleBase(), scenario.ruleTrace.inclusive);
+		wm.addEventListener(listener);
 
-
 		//now run the rules...
 		insertData(wm, this.populatedData);
-		wm.fireAllRules();
+		wm.fireAllRules(scenario.maxRuleFirings);
+		scenario.ruleTrace.firingCounts = listener.firingCounts;
 
 		//now check the results...
 		for (int i = 0; i < scenario.assertions.length; i++) {
 			Assertion assertion = scenario.assertions[i];
 			if (assertion instanceof VerifyFact) {
 				verify((VerifyFact)assertion);
+			} else if (assertion instanceof VerifyRuleFired) {
+				verify((VerifyRuleFired) assertion, scenario.ruleTrace.firingCounts);
 			}
+ 		}
+
+	}
+
+
+
+	private void verify(VerifyRuleFired assertion, Map<String, Integer> firingCounts) {
+		assertion.actual = firingCounts.containsKey(assertion.ruleName) ?  firingCounts.get(assertion.ruleName) : 0;
+		if (assertion.expectNotFire) {
+			assertion.success = assertion.actual == 0;
+		} else if (assertion.expectFire) {
+			assertion.success = assertion.actual > 0;
+		} else {
+			assertion.success = assertion.actual == assertion.expectedCount;
 		}
 	}
 




More information about the jboss-svn-commits mailing list