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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Dec 12 01:13:27 EST 2007


Author: michael.neale at jboss.com
Date: 2007-12-12 01:13:26 -0500 (Wed, 12 Dec 2007)
New Revision: 17190

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/RuleCoverageListener.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/RuleCoverageListenerTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java
Log:
JBRULES-1383 Rule coverage measurement

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-12-12 06:09:10 UTC (rev 17189)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java	2007-12-12 06:13:26 UTC (rev 17190)
@@ -187,6 +187,36 @@
 	}
 
 
+	/**
+	 *
+	 * @return int[0] = failures, int[1] = total;
+	 */
+	public int[] countFailuresTotal() {
+		int total = 0;
+		int failures = 0;
+		for (Iterator iterator = fixtures.iterator(); iterator.hasNext();) {
+			Fixture f = (Fixture) iterator.next();
+			if (f instanceof VerifyRuleFired) {
+				total++;
+				VerifyRuleFired vr = (VerifyRuleFired) f;
+				if (vr.successResult != null && !vr.successResult.booleanValue()) {
+					failures++;
+				}
+			} else if (f instanceof VerifyFact) {
+				VerifyFact vf = (VerifyFact) f;
+				for (Iterator it = vf.fieldValues.iterator(); it
+						.hasNext();) {
+					VerifyField vfl = (VerifyField) it.next();
+					if (vfl.successResult != null && !vfl.successResult.booleanValue()) {
+						failures++;
+					}
+					total++;
+				}
+			}
+		}
+		return new int[] {failures, total};
+	}
+
 }
 
 

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/RuleCoverageListener.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/RuleCoverageListener.java	2007-12-12 06:09:10 UTC (rev 17189)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/RuleCoverageListener.java	2007-12-12 06:13:26 UTC (rev 17190)
@@ -18,7 +18,7 @@
  */
 public class RuleCoverageListener implements AgendaEventListener {
 
-	private final Set<String> rules;
+	final Set<String> rules;
 	private int totalCount;
 
 	/**
@@ -58,8 +58,8 @@
 	/**
 	 * @return A set of rules that were not fired.
 	 */
-	public Set<String> getUnfiredRules() {
-		return this.rules;
+	public String[] getUnfiredRules() {
+		return rules.toArray(new String[rules.size()]);
 	}
 
 	public int getPercentCovered() {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/RuleCoverageListenerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/RuleCoverageListenerTest.java	2007-12-12 06:09:10 UTC (rev 17189)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/RuleCoverageListenerTest.java	2007-12-12 06:13:26 UTC (rev 17190)
@@ -25,30 +25,30 @@
 		rules.add("rule3");
 
 		RuleCoverageListener ls = new RuleCoverageListener(rules);
-		assertEquals(3, ls.getUnfiredRules().size());
+		assertEquals(3, ls.rules.size());
 		assertEquals(0, ls.getPercentCovered());
 
 		ls.afterActivationFired(new AfterActivationFiredEvent(new MockActivation("rule1")), null);
-		assertEquals(2, ls.getUnfiredRules().size());
-		assertTrue(ls.getUnfiredRules().contains("rule2"));
-		assertTrue(ls.getUnfiredRules().contains("rule3"));
-		assertFalse(ls.getUnfiredRules().contains("rule1"));
+		assertEquals(2, ls.rules.size());
+		assertTrue(ls.rules.contains("rule2"));
+		assertTrue(ls.rules.contains("rule3"));
+		assertFalse(ls.rules.contains("rule1"));
 		assertEquals(33, ls.getPercentCovered());
 
 		ls.afterActivationFired(new AfterActivationFiredEvent(new MockActivation("rule2")), null);
-		assertEquals(1, ls.getUnfiredRules().size());
-		assertFalse(ls.getUnfiredRules().contains("rule2"));
-		assertFalse(ls.getUnfiredRules().contains("rule1"));
-		assertTrue(ls.getUnfiredRules().contains("rule3"));
+		assertEquals(1, ls.rules.size());
+		assertFalse(ls.rules.contains("rule2"));
+		assertFalse(ls.rules.contains("rule1"));
+		assertTrue(ls.rules.contains("rule3"));
 
 		assertEquals(66, ls.getPercentCovered());
 
 
 		ls.afterActivationFired(new AfterActivationFiredEvent(new MockActivation("rule3")), null);
-		assertEquals(0, ls.getUnfiredRules().size());
-		assertFalse(ls.getUnfiredRules().contains("rule2"));
-		assertFalse(ls.getUnfiredRules().contains("rule1"));
-		assertFalse(ls.getUnfiredRules().contains("rule3"));
+		assertEquals(0, ls.rules.size());
+		assertFalse(ls.rules.contains("rule2"));
+		assertFalse(ls.rules.contains("rule1"));
+		assertFalse(ls.rules.contains("rule3"));
 
 		assertEquals(100, ls.getPercentCovered());
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java	2007-12-12 06:09:10 UTC (rev 17189)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java	2007-12-12 06:13:26 UTC (rev 17190)
@@ -10,6 +10,7 @@
 import org.drools.brms.client.modeldriven.testing.RetractFact;
 import org.drools.brms.client.modeldriven.testing.Scenario;
 import org.drools.brms.client.modeldriven.testing.VerifyFact;
+import org.drools.brms.client.modeldriven.testing.VerifyField;
 import org.drools.brms.client.modeldriven.testing.VerifyRuleFired;
 
 import junit.framework.TestCase;
@@ -165,4 +166,30 @@
 		assertFalse(sc.isFactNameExisting("w"));
 	}
 
+	public void testCountSuccessFailures() {
+		Scenario sc = new Scenario();
+		sc.fixtures.add(new FactData());
+		sc.fixtures.add(new ExecutionTrace());
+		VerifyRuleFired vr = new VerifyRuleFired();
+		vr.successResult = false;
+		sc.fixtures.add(vr);
+
+		VerifyField vf = new VerifyField();
+		vf.successResult = true;
+		VerifyField vf2 = new VerifyField();
+		vf2.successResult = false;
+		VerifyFact vfact = new VerifyFact();
+		vfact.fieldValues.add(vf);
+		vfact.fieldValues.add(vf2);
+		sc.fixtures.add(vfact);
+
+
+		int[] totals = sc.countFailuresTotal();
+		assertEquals(2, totals[0]);
+		assertEquals(3, totals[1]);
+
+
+
+	}
+
 }




More information about the jboss-svn-commits mailing list