[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