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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Nov 22 03:01:37 EST 2007


Author: michael.neale at jboss.com
Date: 2007-11-22 03:01:36 -0500 (Thu, 22 Nov 2007)
New Revision: 16745

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
Log:
JBRULES-1271 added explanations for expectation failures.

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-11-22 06:21:33 UTC (rev 16744)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java	2007-11-22 08:01:36 UTC (rev 16745)
@@ -40,6 +40,7 @@
 
 	final InternalWorkingMemory workingMemory;
 
+
 	/**
 	 * @param scenario
 	 *            The scenario to run.
@@ -157,16 +158,38 @@
 	}
 
 	void verify(VerifyRuleFired assertion, Map<String, Integer> firingCounts) {
+
 		assertion.actualResult = firingCounts.containsKey(assertion.ruleName) ? firingCounts
 				.get(assertion.ruleName)
 				: 0;
 		if (assertion.expectedFire != null) {
-			assertion.successResult = assertion.expectedFire ? assertion.actualResult > 0
-					: assertion.actualResult == 0;
+			if (assertion.expectedFire) {
+				if (assertion.actualResult > 0) {
+					assertion.successResult = true;
+					assertion.explanation = "Rule [" + assertion.ruleName + "] was actived " + assertion.actualResult + " times.";
+				} else {
+					assertion.successResult = false;
+					assertion.explanation = "Rule [" + assertion.ruleName + "] was not activated. Expected it to be activated.";
+				}
+			} else {
+				if (assertion.actualResult == 0) {
+					assertion.successResult = true;
+					assertion.explanation = "Rule [" + assertion.ruleName + "] was not activated.";
+				} else {
+					assertion.successResult = false;
+					assertion.explanation = "Rule [" + assertion.ruleName + "] was activated " + assertion.actualResult + " times, but expected none.";
+				}
+			}
 		}
+
 		if (assertion.expectedCount != null) {
-			assertion.successResult = assertion.actualResult
-					.equals(assertion.expectedCount);
+			if (assertion.actualResult.equals(assertion.expectedCount)) {
+				assertion.successResult = true;
+				assertion.explanation = "Rule [" + assertion.ruleName + "] activated " + assertion.actualResult + " times.";
+			} else {
+				assertion.successResult = false;
+				assertion.explanation = "Rule [" + assertion.ruleName + "] activated " + assertion.actualResult + " times. Expected " + assertion.expectedCount + " times.";
+			}
 		}
 	}
 
@@ -179,11 +202,25 @@
 			Map<String, Object> st = new HashMap<String, Object>();
 			st.put("__fact__", fact);
 			st.put("__expected__", fld.expected);
+
 			fld.successResult = (Boolean) eval("__fact__." + fld.fieldName
 					+ " " + fld.operator  + " __expected__", st);
+
+
 			if (!fld.successResult) {
 				fld.actualResult = eval("__fact__." + fld.fieldName, st).toString();
+				if (fld.operator.equals("==")) {
+					fld.explanation = "[" + value.name + "] field [" + fld.fieldName + "] was [" + fld.actualResult
+										+ "] expected [" + fld.actualResult + "].";
+				} else {
+					fld.explanation = "[" + value.name + "] field [" + fld.fieldName + "] was not expected to be [" + fld.actualResult
+					+ "].";
+				}
+			} else {
+
+				fld.explanation = "[" + value.name + "] field [" + fld.fieldName + "] was [" + fld.expected + "].";
 			}
+
 		}
 	}
 
@@ -208,4 +245,5 @@
 		return factObject;
 	}
 
+
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java	2007-11-22 06:21:33 UTC (rev 16744)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java	2007-11-22 08:01:36 UTC (rev 16745)
@@ -253,6 +253,7 @@
 		runner.verify(v, firingCounts);
 		assertFalse(v.successResult);
 		assertEquals(2, v.actualResult.intValue());
+		assertNotNull(v.explanation);
 
 		v = new VerifyRuleFired();
 		v.ruleName = "foo";
@@ -595,6 +596,7 @@
         assertFalse(((VerifyField)vf.fieldValues.get(0)).successResult);
         assertEquals("XXX", ((VerifyField)vf.fieldValues.get(0)).expected);
         assertEquals("rule1",((VerifyField) vf.fieldValues.get(0)).actualResult);
+        assertNotNull(((VerifyField) vf.fieldValues.get(0)).explanation);
 
         VerifyRuleFired vr = (VerifyRuleFired) assertions[4];
         assertFalse(vr.successResult);




More information about the jboss-svn-commits mailing list