[jboss-svn-commits] JBL Code SVN: r15968 - 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
Sun Oct 21 23:53:46 EDT 2007
Author: michael.neale at jboss.com
Date: 2007-10-21 23:53:46 -0400 (Sun, 21 Oct 2007)
New Revision: 15968
Added:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyFact.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyField.java
Removed:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFactValue.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFieldValue.java
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 Test framework
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFactValue.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFactValue.java 2007-10-21 19:06:44 UTC (rev 15967)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFactValue.java 2007-10-22 03:53:46 UTC (rev 15968)
@@ -1,9 +0,0 @@
-package org.drools.brms.client.modeldriven.testing;
-
-public class AssertFactValue implements Assertion {
-
- public AssertFieldValue[] fieldValues = new AssertFieldValue[0];
-
-
-
-}
Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFieldValue.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFieldValue.java 2007-10-21 19:06:44 UTC (rev 15967)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFieldValue.java 2007-10-22 03:53:46 UTC (rev 15968)
@@ -1,11 +0,0 @@
-package org.drools.brms.client.modeldriven.testing;
-
-import java.io.Serializable;
-
-public class AssertFieldValue implements Serializable {
-
- public String expected;
- public String actual;
- public boolean isChecked;
-
-}
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyFact.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyFact.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyFact.java 2007-10-22 03:53:46 UTC (rev 15968)
@@ -0,0 +1,14 @@
+package org.drools.brms.client.modeldriven.testing;
+
+/**
+ * This is for making assertions over a specific facts value/state AFTER execution.
+ * @author Michael Neale
+ *
+ */
+public class VerifyFact implements Assertion {
+
+ public VerifyField[] fieldValues = new VerifyField[0];
+ public String factName;
+
+
+}
Copied: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyField.java (from rev 15967, labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFieldValue.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyField.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyField.java 2007-10-22 03:53:46 UTC (rev 15968)
@@ -0,0 +1,20 @@
+package org.drools.brms.client.modeldriven.testing;
+
+import java.io.Serializable;
+
+public class VerifyField implements Serializable {
+
+ public String fieldName;
+ public String expected;
+ public String actual;
+ public Boolean success;
+
+ public VerifyField() {}
+
+ public VerifyField(String fieldName, String expected) {
+ this.fieldName = fieldName;
+ this.expected = expected;
+ }
+
+
+}
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-21 19:06:44 UTC (rev 15967)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java 2007-10-22 03:53:46 UTC (rev 15968)
@@ -6,8 +6,8 @@
import java.util.Map;
import org.drools.base.TypeResolver;
-import org.drools.brms.client.modeldriven.testing.AssertFactValue;
-import org.drools.brms.client.modeldriven.testing.AssertFieldValue;
+import org.drools.brms.client.modeldriven.testing.VerifyFact;
+import org.drools.brms.client.modeldriven.testing.VerifyField;
import org.drools.brms.client.modeldriven.testing.Assertion;
import org.drools.brms.client.modeldriven.testing.FactData;
import org.drools.brms.client.modeldriven.testing.FieldData;
@@ -30,7 +30,7 @@
* @param resolver A populated type resolved to be used to resolve the types in the scenario.
*
* For info on how to invoke this, see ContentPackageAssemblerTest.testPackageWithRuleflow in drools-jbrms
- * This requires that the classloader for the context be set appropraitely. The PackageBuilder
+ * This requires that the classloader for the thread context be set appropraitely. The PackageBuilder
* can provide a suitable TypeResolver for a given package header, and the Package config can provide
* a classloader.
*
@@ -54,21 +54,25 @@
//now check the results...
for (int i = 0; i < scenario.assertions.length; i++) {
Assertion assertion = scenario.assertions[i];
- if (assertion instanceof AssertFactValue) {
- verify((AssertFactValue)assertion);
+ if (assertion instanceof VerifyFact) {
+ verify((VerifyFact)assertion);
}
}
}
- private void verify(AssertFactValue value) {
+ void verify(VerifyFact value) {
+ Object fact = this.populatedData.get(value.factName);
for (int i = 0; i < value.fieldValues.length; i++) {
- AssertFieldValue verify = value.fieldValues[i];
- verify.isChecked = true;
- //hmmm... need a ruleset that we can use to take data
- //from the WM under test - perhaps ALL the data
- //if checking a named fact, may not be worth the hassle
+ VerifyField fld = value.fieldValues[i];
+ Map<String, Object> st = new HashMap<String, Object>();
+ st.put("__fact__", fact);
+ st.put("__expected__", fld.expected);
+ fld.success = (Boolean) eval( "__fact__." + fld.fieldName + " == __expected__", st);
+ if (!fld.success) {
+ fld.actual = eval("__fact__." + fld.fieldName, st).toString();
+ }
}
}
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-10-21 19:06:44 UTC (rev 15967)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java 2007-10-22 03:53:46 UTC (rev 15968)
@@ -9,6 +9,8 @@
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.VerifyFact;
+import org.drools.brms.client.modeldriven.testing.VerifyField;
import junit.framework.TestCase;
@@ -43,6 +45,64 @@
}
+ public void testVerifyFacts() throws Exception {
+ ScenarioRunner runner = new ScenarioRunner(new Scenario(), null);
+ Cheese f1 = new Cheese("cheddar", 42);
+ runner.populatedData.put("f1", f1);
+ Person f2 = new Person("michael", 33);
+ runner.populatedData.put("f2", f2);
+
+ //test all true
+ VerifyFact vf = new VerifyFact();
+ vf.factName = "f1";
+ vf.fieldValues = new VerifyField[] { new VerifyField("type", "cheddar"), new VerifyField("price", "42") } ;
+
+ runner.verify(vf);
+ for (int i = 0; i < vf.fieldValues.length; i++) {
+ assertTrue(vf.fieldValues[i].success);
+ }
+
+ vf = new VerifyFact();
+ vf.factName = "f2";
+ vf.fieldValues = new VerifyField[] { new VerifyField("name", "michael"), new VerifyField("age", "33") } ;
+
+ runner.verify(vf);
+ for (int i = 0; i < vf.fieldValues.length; i++) {
+ assertTrue(vf.fieldValues[i].success);
+ }
+
+ //test one false
+ vf = new VerifyFact();
+ vf.factName = "f2";
+ vf.fieldValues = new VerifyField[] { new VerifyField("name", "mark"), new VerifyField("age", "33") } ;
+
+ runner.verify(vf);
+ assertFalse(vf.fieldValues[0].success);
+ assertTrue(vf.fieldValues[1].success);
+
+ assertEquals("michael", vf.fieldValues[0].actual);
+ assertEquals("mark", vf.fieldValues[0].expected);
+
+
+ //test 2 false
+ vf = new VerifyFact();
+ vf.factName = "f2";
+ vf.fieldValues = new VerifyField[] { new VerifyField("name", "mark"), new VerifyField("age", "32") } ;
+
+ runner.verify(vf);
+ assertFalse(vf.fieldValues[0].success);
+ assertFalse(vf.fieldValues[1].success);
+
+ assertEquals("michael", vf.fieldValues[0].actual);
+ assertEquals("mark", vf.fieldValues[0].expected);
+
+ assertEquals("33", vf.fieldValues[1].actual);
+ assertEquals("32", vf.fieldValues[1].expected);
+
+ }
+
+
+
}
More information about the jboss-svn-commits
mailing list