[jboss-svn-commits] JBL Code SVN: r16319 - 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 Nov 4 20:23:20 EST 2007
Author: michael.neale at jboss.com
Date: 2007-11-04 20:23:19 -0500 (Sun, 04 Nov 2007)
New Revision: 16319
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyField.java
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 Allows other operators for expectations
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyField.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyField.java 2007-11-04 20:42:26 UTC (rev 16318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyField.java 2007-11-05 01:23:19 UTC (rev 16319)
@@ -10,11 +10,17 @@
public String actualResult;
public Boolean successResult;
+ /**
+ * Operator is generally "==" or "!=" - an MVEL operator.
+ */
+ public String operator;
+
public VerifyField() {}
- public VerifyField(String fieldName, String expected) {
+ public VerifyField(String fieldName, String expected, String operator) {
this.fieldName = fieldName;
this.expected = expected;
+ this.operator = operator;
}
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-04 20:42:26 UTC (rev 16318)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java 2007-11-05 01:23:19 UTC (rev 16319)
@@ -180,7 +180,7 @@
st.put("__fact__", fact);
st.put("__expected__", fld.expected);
fld.successResult = (Boolean) eval("__fact__." + fld.fieldName
- + " == __expected__", st);
+ + " " + fld.operator + " __expected__", st);
if (!fld.successResult) {
fld.actualResult = 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-11-04 20:42:26 UTC (rev 16318)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java 2007-11-05 01:23:19 UTC (rev 16319)
@@ -103,8 +103,8 @@
VerifyFact vf = new VerifyFact();
vf.factName = "f1";
vf.fieldValues = new VerifyField[] {
- new VerifyField("type", "cheddar"),
- new VerifyField("price", "42") };
+ new VerifyField("type", "cheddar", "=="),
+ new VerifyField("price", "42", "==") };
runner.verify(vf);
for (int i = 0; i < vf.fieldValues.length; i++) {
@@ -114,8 +114,8 @@
vf = new VerifyFact();
vf.factName = "f2";
vf.fieldValues = new VerifyField[] {
- new VerifyField("name", "michael"),
- new VerifyField("age", "33") };
+ new VerifyField("name", "michael", "=="),
+ new VerifyField("age", "33", "==") };
runner.verify(vf);
for (int i = 0; i < vf.fieldValues.length; i++) {
@@ -125,8 +125,8 @@
// test one false
vf = new VerifyFact();
vf.factName = "f2";
- vf.fieldValues = new VerifyField[] { new VerifyField("name", "mark"),
- new VerifyField("age", "33") };
+ vf.fieldValues = new VerifyField[] { new VerifyField("name", "mark", "=="),
+ new VerifyField("age", "33", "==") };
runner.verify(vf);
assertFalse(vf.fieldValues[0].successResult);
@@ -138,8 +138,8 @@
// test 2 false
vf = new VerifyFact();
vf.factName = "f2";
- vf.fieldValues = new VerifyField[] { new VerifyField("name", "mark"),
- new VerifyField("age", "32") };
+ vf.fieldValues = new VerifyField[] { new VerifyField("name", "mark", "=="),
+ new VerifyField("age", "32", "==") };
runner.verify(vf);
assertFalse(vf.fieldValues[0].successResult);
@@ -153,6 +153,33 @@
}
+ public void testVerifyFactsWithOperator() throws Exception {
+ ScenarioRunner runner = new ScenarioRunner(new Scenario(), null,
+ new MockWorkingMemory());
+ Cheese f1 = new Cheese("cheddar", 42);
+ runner.populatedData.put("f1", f1);
+
+ // test all true
+ VerifyFact vf = new VerifyFact();
+ vf.factName = "f1";
+ vf.fieldValues = new VerifyField[] {
+ new VerifyField("type", "cheddar", "=="),
+ new VerifyField("price", "4777", "!=") };
+ runner.verify(vf);
+ for (int i = 0; i < vf.fieldValues.length; i++) {
+ assertTrue(vf.fieldValues[i].successResult);
+ }
+
+ vf = new VerifyFact();
+ vf.factName = "f1";
+ vf.fieldValues = new VerifyField[] {
+ new VerifyField("type", "cheddar", "!=")};
+ runner.verify(vf);
+ assertFalse(vf.fieldValues[0].successResult);
+
+
+ }
+
public void testDummyRunNoRules() throws Exception {
Scenario sc = new Scenario();
FactData[] facts = new FactData[] { new FactData("Cheese", "c1",
@@ -160,8 +187,8 @@
new FieldData("price", "42", false) }, false) };
VerifyFact[] assertions = new VerifyFact[] { new VerifyFact("c1",
- new VerifyField[] { new VerifyField("type", "cheddar"),
- new VerifyField("price", "42") }) };
+ new VerifyField[] { new VerifyField("type", "cheddar", "=="),
+ new VerifyField("price", "42", "==") }) };
sc.fixtures.addAll(Arrays.asList(facts));
sc.fixtures.addAll(Arrays.asList(assertions));
@@ -318,13 +345,13 @@
Expectation[] assertions = new Expectation[5];
assertions[0] = new VerifyFact("c1", new VerifyField[] {
- new VerifyField("type", "cheddar")
+ new VerifyField("type", "cheddar", "==")
});
assertions[1] = new VerifyFact("p", new VerifyField[] {
- new VerifyField("name", "rule1"),
- new VerifyField("status", "rule2")
+ new VerifyField("name", "rule1", "=="),
+ new VerifyField("status", "rule2", "==")
});
@@ -366,10 +393,10 @@
ExecutionTrace ex = new ExecutionTrace();
sc.fixtures.add(ex);
sc.fixtures.add(new FactData("Cheese", "c2", new FieldData[] {new FieldData("price", "2", false)}, false));
- sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule1")}));
+ sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule1", "==")}));
ex = new ExecutionTrace();
sc.fixtures.add(ex);
- sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule2")}));
+ sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule2", "==")}));
TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
Thread.currentThread().getContextClassLoader());
@@ -396,12 +423,12 @@
sc.fixtures.add(new ExecutionTrace());
- sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule1")}));
+ sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule1", "==")}));
sc.fixtures.add(new FactData("Cheese", "c1", new FieldData[] {new FieldData("price", "42", false)}, true));
sc.fixtures.add(new ExecutionTrace());
- sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule3")}));
+ sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule3", "==")}));
@@ -428,12 +455,12 @@
sc.fixtures.add(new FactData("Cheese", "c2", new FieldData[] {new FieldData("price", "42", false)}, false));
sc.fixtures.add(new ExecutionTrace());
- sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "XXX")}));
+ sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "XXX", "==")}));
sc.fixtures.add(new RetractFact("c2"));
sc.fixtures.add(new ExecutionTrace());
- sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule4")}));
+ sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule4", "==")}));
@@ -473,13 +500,13 @@
Expectation[] assertions = new Expectation[5];
assertions[0] = new VerifyFact("c1", new VerifyField[] {
- new VerifyField("type", "cheddar")
+ new VerifyField("type", "cheddar", "==")
});
assertions[1] = new VerifyFact("p", new VerifyField[] {
- new VerifyField("name", "XXX"),
- new VerifyField("status", "rule2")
+ new VerifyField("name", "XXX", "=="),
+ new VerifyField("status", "rule2", "==")
});
More information about the jboss-svn-commits
mailing list