[jboss-svn-commits] JBL Code SVN: r16574 - 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
Tue Nov 13 22:36:32 EST 2007
Author: michael.neale at jboss.com
Date: 2007-11-13 22:36:32 -0500 (Tue, 13 Nov 2007)
New Revision: 16574
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/VerifyFact.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
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java
Log:
JBRULES-1271 test scenario 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-11-14 03:26:26 UTC (rev 16573)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java 2007-11-14 03:36:32 UTC (rev 16574)
@@ -3,8 +3,10 @@
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
/**
* This represents a test scenario.
@@ -82,10 +84,30 @@
/**
* Remove the specified fixture.
*/
- public void removeFixture(VerifyRuleFired vf2) {
- this.fixtures.remove(vf2);
+ public void removeFixture(Fixture f) {
+ this.fixtures.remove(f);
}
+
+ /**
+ *
+ * @return A mapping of variable names to their fact type.
+ */
+ public Map getVariableTypes() {
+ Map m = new HashMap();
+ for (Iterator iterator = fixtures.iterator(); iterator.hasNext();) {
+ Fixture f = (Fixture) iterator.next();
+ if (f instanceof FactData) {
+ FactData fd = (FactData)f;
+ m.put(fd.name, fd.type);
+ }
+ }
+ for (Iterator iterator = globals.iterator(); iterator.hasNext();) {
+ FactData fd = (FactData) iterator.next();
+ m.put(fd.name, fd.type);
+ }
+ return m;
+ }
}
Modified: 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 2007-11-14 03:26:26 UTC (rev 16573)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyFact.java 2007-11-14 03:36:32 UTC (rev 16574)
@@ -1,5 +1,8 @@
package org.drools.brms.client.modeldriven.testing;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* This is for making assertions over a specific facts value/state AFTER execution.
* @author Michael Neale
@@ -7,21 +10,24 @@
*/
public class VerifyFact implements Expectation {
- public VerifyField[] fieldValues = new VerifyField[0];
+ /**
+ * @gwt.typeArgs <org.drools.brms.client.modeldriven.testing.VerifyField>
+ */
+ public List fieldValues = new ArrayList();
public String factName;
public String description;
public VerifyFact() {}
- public VerifyFact(String factName, VerifyField[] fieldValues) {
+ public VerifyFact(String factName, List fieldValues) {
this.factName = factName;
this.fieldValues = fieldValues;
}
public boolean wasSuccessful() {
- for (int i = 0; i < fieldValues.length; i++) {
- VerifyField vf = fieldValues[i];
+ for (int i = 0; i < fieldValues.size(); i++) {
+ VerifyField vf = (VerifyField) fieldValues.get(i);
if (! vf.successResult.booleanValue()) {
return false;
}
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-14 03:26:26 UTC (rev 16573)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java 2007-11-14 03:36:32 UTC (rev 16574)
@@ -174,8 +174,8 @@
void verify(VerifyFact value) {
Object fact = this.populatedData.get(value.factName);
if (fact == null) fact = this.globalData.get(value.factName);
- for (int i = 0; i < value.fieldValues.length; i++) {
- VerifyField fld = value.fieldValues[i];
+ for (int i = 0; i < value.fieldValues.size(); i++) {
+ VerifyField fld = (VerifyField) value.fieldValues.get(i);
Map<String, Object> st = new HashMap<String, Object>();
st.put("__fact__", fact);
st.put("__expected__", fld.expected);
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-14 03:26:26 UTC (rev 16573)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java 2007-11-14 03:36:32 UTC (rev 16574)
@@ -4,6 +4,7 @@
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import org.drools.Cheese;
@@ -121,54 +122,54 @@
// test all true
VerifyFact vf = new VerifyFact();
vf.factName = "f1";
- vf.fieldValues = new VerifyField[] {
+ vf.fieldValues = ls(new VerifyField[] {
new VerifyField("type", "cheddar", "=="),
- new VerifyField("price", "42", "==") };
+ new VerifyField("price", "42", "==") });
runner.verify(vf);
- for (int i = 0; i < vf.fieldValues.length; i++) {
- assertTrue(vf.fieldValues[i].successResult);
+ for (int i = 0; i < vf.fieldValues.size(); i++) {
+ assertTrue(( (VerifyField)vf.fieldValues.get(i)).successResult);
}
vf = new VerifyFact();
vf.factName = "f2";
- vf.fieldValues = new VerifyField[] {
+ vf.fieldValues = ls(new VerifyField[] {
new VerifyField("name", "michael", "=="),
- new VerifyField("age", "33", "==") };
+ new VerifyField("age", "33", "==") });
runner.verify(vf);
- for (int i = 0; i < vf.fieldValues.length; i++) {
- assertTrue(vf.fieldValues[i].successResult);
+ for (int i = 0; i < vf.fieldValues.size(); i++) {
+ assertTrue(((VerifyField)vf.fieldValues.get(i)).successResult);
}
// test one false
vf = new VerifyFact();
vf.factName = "f2";
- vf.fieldValues = new VerifyField[] { new VerifyField("name", "mark", "=="),
- new VerifyField("age", "33", "==") };
+ vf.fieldValues = ls(new VerifyField[] { new VerifyField("name", "mark", "=="),
+ new VerifyField("age", "33", "==") });
runner.verify(vf);
- assertFalse(vf.fieldValues[0].successResult);
- assertTrue(vf.fieldValues[1].successResult);
+ assertFalse(((VerifyField)vf.fieldValues.get(0)).successResult);
+ assertTrue(( (VerifyField)vf.fieldValues.get(1)).successResult);
- assertEquals("michael", vf.fieldValues[0].actualResult);
- assertEquals("mark", vf.fieldValues[0].expected);
+ assertEquals("michael", ((VerifyField)vf.fieldValues.get(0)).actualResult);
+ assertEquals("mark", ((VerifyField)vf.fieldValues.get(0)).expected);
// test 2 false
vf = new VerifyFact();
vf.factName = "f2";
- vf.fieldValues = new VerifyField[] { new VerifyField("name", "mark", "=="),
- new VerifyField("age", "32", "==") };
+ vf.fieldValues = ls(new VerifyField[] { new VerifyField("name", "mark", "=="),
+ new VerifyField("age", "32", "==") });
runner.verify(vf);
- assertFalse(vf.fieldValues[0].successResult);
- assertFalse(vf.fieldValues[1].successResult);
+ assertFalse(((VerifyField)vf.fieldValues.get(0)).successResult);
+ assertFalse(((VerifyField)vf.fieldValues.get(1)).successResult);
- assertEquals("michael", vf.fieldValues[0].actualResult);
- assertEquals("mark", vf.fieldValues[0].expected);
+ assertEquals("michael", ((VerifyField)vf.fieldValues.get(0)).actualResult);
+ assertEquals("mark", ((VerifyField)vf.fieldValues.get(0)).expected);
- assertEquals("33", vf.fieldValues[1].actualResult);
- assertEquals("32", vf.fieldValues[1].expected);
+ assertEquals("33", ((VerifyField)vf.fieldValues.get(1)).actualResult);
+ assertEquals("32", ((VerifyField)vf.fieldValues.get(1)).expected);
}
@@ -181,20 +182,20 @@
// test all true
VerifyFact vf = new VerifyFact();
vf.factName = "f1";
- vf.fieldValues = new VerifyField[] {
+ vf.fieldValues = ls(new VerifyField[] {
new VerifyField("type", "cheddar", "=="),
- new VerifyField("price", "4777", "!=") };
+ new VerifyField("price", "4777", "!=") });
runner.verify(vf);
- for (int i = 0; i < vf.fieldValues.length; i++) {
- assertTrue(vf.fieldValues[i].successResult);
+ for (int i = 0; i < vf.fieldValues.size(); i++) {
+ assertTrue(((VerifyField)vf.fieldValues.get(i)).successResult);
}
vf = new VerifyFact();
vf.factName = "f1";
- vf.fieldValues = new VerifyField[] {
- new VerifyField("type", "cheddar", "!=")};
+ vf.fieldValues = ls(new VerifyField[] {
+ new VerifyField("type", "cheddar", "!=")});
runner.verify(vf);
- assertFalse(vf.fieldValues[0].successResult);
+ assertFalse(((VerifyField)vf.fieldValues.get(0)).successResult);
}
@@ -206,8 +207,8 @@
new FieldData("price", "42") }, false) };
VerifyFact[] assertions = new VerifyFact[] { new VerifyFact("c1",
- new VerifyField[] { new VerifyField("type", "cheddar", "=="),
- new VerifyField("price", "42", "==") }) };
+ ls(new VerifyField[] { new VerifyField("type", "cheddar", "=="),
+ new VerifyField("price", "42", "==") })) };
sc.fixtures.addAll(Arrays.asList(facts));
sc.fixtures.addAll(Arrays.asList(assertions));
@@ -223,8 +224,8 @@
assertTrue(runner.populatedData.containsKey("c1"));
VerifyFact vf = (VerifyFact) assertions[0];
- for (int i = 0; i < vf.fieldValues.length; i++) {
- assertTrue(vf.fieldValues[i].successResult);
+ for (int i = 0; i < vf.fieldValues.size(); i++) {
+ assertTrue(((VerifyField)vf.fieldValues.get(i)).successResult);
}
}
@@ -404,16 +405,16 @@
Expectation[] assertions = new Expectation[5];
- assertions[0] = new VerifyFact("c1", new VerifyField[] {
+ assertions[0] = new VerifyFact("c1", ls(new VerifyField[] {
new VerifyField("type", "cheddar", "==")
- });
+ }));
- assertions[1] = new VerifyFact("p", new VerifyField[] {
+ assertions[1] = new VerifyFact("p", listof(
new VerifyField("name", "rule1", "=="),
- new VerifyField("status", "rule2", "==")
+ new VerifyField("status", "rule2", "=="))
- });
+ );
assertions[2] = new VerifyRuleFired("rule1", 1, null);
assertions[3] = new VerifyRuleFired("rule2", 1, null);
@@ -453,10 +454,10 @@
ExecutionTrace ex = new ExecutionTrace();
sc.fixtures.add(ex);
sc.fixtures.add(new FactData("Cheese", "c2", new FieldData[] {new FieldData("price", "2")}, false));
- sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule1", "==")}));
+ sc.fixtures.add(new VerifyFact("c1", listof(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", listof(new VerifyField("type", "rule2", "=="))));
TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
Thread.currentThread().getContextClassLoader());
@@ -483,12 +484,12 @@
sc.fixtures.add(new ExecutionTrace());
- sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule1", "==")}));
+ sc.fixtures.add(new VerifyFact("c1", listof(new VerifyField("type", "rule1", "=="))));
sc.fixtures.add(new FactData("Cheese", "c1", new FieldData[] {new FieldData("price", "42")}, true));
sc.fixtures.add(new ExecutionTrace());
- sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule3", "==")}));
+ sc.fixtures.add(new VerifyFact("c1", listof(new VerifyField("type", "rule3", "=="))));
@@ -515,12 +516,12 @@
sc.fixtures.add(new FactData("Cheese", "c2", new FieldData[] {new FieldData("price", "42")}, false));
sc.fixtures.add(new ExecutionTrace());
- sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "XXX", "==")}));
+ sc.fixtures.add(new VerifyFact("c1", listof(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", listof(new VerifyField("type", "rule4", "=="))));
@@ -559,16 +560,16 @@
Expectation[] assertions = new Expectation[5];
- assertions[0] = new VerifyFact("c1", new VerifyField[] {
+ assertions[0] = new VerifyFact("c1", listof(
new VerifyField("type", "cheddar", "==")
- });
+ ));
- assertions[1] = new VerifyFact("p", new VerifyField[] {
+ assertions[1] = new VerifyFact("p", listof(
new VerifyField("name", "XXX", "=="),
new VerifyField("status", "rule2", "==")
- });
+ ));
assertions[2] = new VerifyRuleFired("rule1", 1, null);
assertions[3] = new VerifyRuleFired("rule2", 1, null);
@@ -590,9 +591,9 @@
assertFalse(sc.wasSuccessful());
VerifyFact vf = (VerifyFact) assertions[1];
- assertFalse(vf.fieldValues[0].successResult);
- assertEquals("XXX", vf.fieldValues[0].expected);
- assertEquals("rule1", vf.fieldValues[0].actualResult);
+ assertFalse(((VerifyField)vf.fieldValues.get(0)).successResult);
+ assertEquals("XXX", ((VerifyField)vf.fieldValues.get(0)).expected);
+ assertEquals("rule1",((VerifyField) vf.fieldValues.get(0)).actualResult);
VerifyRuleFired vr = (VerifyRuleFired) assertions[4];
assertFalse(vr.successResult);
@@ -603,9 +604,16 @@
}
+ private List ls(Object[] arr) {
+ return Arrays.asList(arr);
+ }
+ private<T> List<T> listof(T... objects) {
+ return Arrays.asList(objects);
+ }
+
}
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-11-14 03:26:26 UTC (rev 16573)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java 2007-11-14 03:36:32 UTC (rev 16574)
@@ -1,5 +1,8 @@
package org.drools.testframework;
+import java.util.Map;
+
+import org.drools.brms.client.modeldriven.testing.FactData;
import org.drools.brms.client.modeldriven.testing.Scenario;
import org.drools.brms.client.modeldriven.testing.VerifyRuleFired;
@@ -53,4 +56,17 @@
assertEquals(vf3, sc.fixtures.get(1));
}
+ public void testMapFactTypes() {
+ Scenario sc = new Scenario();
+ sc.fixtures.add(new FactData("X", "q", null, false));
+ sc.globals.add(new FactData("Q", "x", null, false));
+
+ Map r = sc.getVariableTypes();
+ assertEquals(2, r.size());
+
+ assertEquals("X", r.get("q"));
+ assertEquals("Q", r.get("x"));
+
+ }
+
}
More information about the jboss-svn-commits
mailing list