[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