[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