[jboss-svn-commits] JBL Code SVN: r16356 - 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
Mon Nov 5 20:27:26 EST 2007


Author: michael.neale at jboss.com
Date: 2007-11-05 20:27:26 -0500 (Mon, 05 Nov 2007)
New Revision: 16356

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/FieldData.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/FactDataTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
Log:
JBRULES-1271 removed expression flag (it now just uses an "=")

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/FieldData.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/FieldData.java	2007-11-06 01:24:37 UTC (rev 16355)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/FieldData.java	2007-11-06 01:27:26 UTC (rev 16356)
@@ -4,19 +4,21 @@
 
 public class FieldData implements Serializable {
 
+	/** the name of the field */
 	public String name;
+
+	/** The value of the field to be set to.
+	 * This will either be a literal value (which will be coerced by MVEL).
+	 * Or if it starts with an "=" then it is an EL that will be evaluated to yield a value.
+	 */
 	public String value;
 
 
 	public FieldData() {}
-	public FieldData(String name, String value, boolean isExpression) {
+	public FieldData(String name, String value) {
 		this.name = name;
 		this.value = value;
-		this.isExpression = isExpression;
 	}
 
-	/**
-	 * If it is an expression, the value itself will be evaled, and then used to set the field.
-	 */
-	public boolean isExpression = 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-06 01:24:37 UTC (rev 16355)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java	2007-11-06 01:27:26 UTC (rev 16356)
@@ -192,9 +192,9 @@
 			FieldData field = fact.fieldData[i];
 			Object val;
 			if (field.value != null && !field.value.equals("")) {
-				if (field.isExpression) {
+				if (field.value.startsWith("=")) {
 					// eval the val into existence
-					val = eval(field.value, factData);
+					val = eval(field.value.substring(1), factData);
 				} else {
 					val = field.value;
 				}

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactDataTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactDataTest.java	2007-11-06 01:24:37 UTC (rev 16355)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactDataTest.java	2007-11-06 01:27:26 UTC (rev 16356)
@@ -9,9 +9,9 @@
 	public void testAdd() {
 		FactData fd = new FactData("x", "y", new FieldData[0], false );
 		assertEquals(0, fd.fieldData.length);
-		fd.addFieldData(new FieldData("x", "y", false));
+		fd.addFieldData(new FieldData("x", "y"));
 		assertEquals(1, fd.fieldData.length);
-		fd.addFieldData(new FieldData("q", "x", false));
+		fd.addFieldData(new FieldData("q", "x"));
 		assertEquals(2, fd.fieldData.length);
 	}
 }

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-06 01:24:37 UTC (rev 16355)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java	2007-11-06 01:27:26 UTC (rev 16356)
@@ -1,11 +1,9 @@
 package org.drools.testframework;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
 
 import org.drools.Cheese;
@@ -23,28 +21,19 @@
 import org.drools.brms.client.modeldriven.testing.VerifyField;
 import org.drools.brms.client.modeldriven.testing.VerifyRuleFired;
 import org.drools.common.InternalWorkingMemory;
-import org.drools.event.ActivationCancelledEvent;
-import org.drools.event.ActivationCreatedEvent;
-import org.drools.event.AfterActivationFiredEvent;
-import org.drools.event.AgendaEventListener;
-import org.drools.event.AgendaGroupPoppedEvent;
-import org.drools.event.AgendaGroupPushedEvent;
-import org.drools.event.BeforeActivationFiredEvent;
 import org.drools.rule.TimeMachine;
 
-import com.thoughtworks.xstream.XStream;
-
 public class ScenarioRunnerTest extends RuleUnit {
 
 	public void testPopulateFacts() throws Exception {
 		Scenario sc = new Scenario();
 		FactData[] facts = new FactData[] {
 				new FactData("Cheese", "c1", new FieldData[] {
-						new FieldData("type", "cheddar", false),
-						new FieldData("price", "42", false) },  false),
+						new FieldData("type", "cheddar"),
+						new FieldData("price", "42") },  false),
 				new FactData("Person", "p1", new FieldData[] {
-						new FieldData("name", "mic", false),
-						new FieldData("age", "30 + 3", true) }, false) };
+						new FieldData("name", "mic"),
+						new FieldData("age", "=30 + 3") }, false) };
 
 		sc.fixtures.addAll(Arrays.asList(facts));
 		TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
@@ -67,6 +56,36 @@
 
 	}
 
+	public void testPopulateFactsWithExpressions() throws Exception {
+		Scenario sc = new Scenario();
+		FactData[] facts = new FactData[] {
+				new FactData("Cheese", "c1", new FieldData[] {
+						new FieldData("type", "cheddar"),
+						new FieldData("price", "42") },  false),
+				new FactData("Cheese", "c2", new FieldData[] {
+						new FieldData("type", "= c1.type")}, false) };
+
+		sc.fixtures.addAll(Arrays.asList(facts));
+		TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
+				Thread.currentThread().getContextClassLoader());
+		resolver.addImport("org.drools.Cheese");
+
+		ScenarioRunner runner = new ScenarioRunner(sc, resolver,
+				new MockWorkingMemory());
+
+		assertTrue(runner.populatedData.containsKey("c1"));
+		assertTrue(runner.populatedData.containsKey("c2"));
+
+		Cheese c = (Cheese) runner.populatedData.get("c1");
+		assertEquals("cheddar", c.getType());
+		assertEquals(42, c.getPrice());
+
+		Cheese c2 = (Cheese) runner.populatedData.get("c2");
+		assertEquals(c.getType(), c2.getType());
+
+	}
+
+
 	public void testPopulateNoData() throws Exception {
 		TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
 				Thread.currentThread().getContextClassLoader());
@@ -80,7 +99,7 @@
 
 		assertEquals(1, c.getPrice());
 
-		FactData fd = new FactData("Cheese", "x", new FieldData[] {new FieldData("type", "", false), new FieldData("price", "42", false)}, false);
+		FactData fd = new FactData("Cheese", "x", new FieldData[] {new FieldData("type", ""), new FieldData("price", "42")}, false);
 
 		run.populateFields(fd, run.populatedData, c);
 		assertEquals("whee", c.getType());
@@ -183,8 +202,8 @@
 	public void testDummyRunNoRules() throws Exception {
 		Scenario sc = new Scenario();
 		FactData[] facts = new FactData[] { new FactData("Cheese", "c1",
-				new FieldData[] { new FieldData("type", "cheddar", false),
-						new FieldData("price", "42", false) }, false) };
+				new FieldData[] { new FieldData("type", "cheddar"),
+						new FieldData("price", "42") }, false) };
 
 		VerifyFact[] assertions = new VerifyFact[] { new VerifyFact("c1",
 				new VerifyField[] { new VerifyField("type", "cheddar", "=="),
@@ -268,9 +287,9 @@
 		Scenario sc = new Scenario();
 		FactData[] facts = new FactData[] {
 				new FactData("Cheese", "c2", new FieldData[] { new FieldData(
-						"type", "stilton", false) }, false) };
+						"type", "stilton") }, false) };
 		sc.globals.add(new FactData("Cheese", "c", new FieldData[] { new FieldData(
-				"type", "cheddar", false) }, false));
+				"type", "cheddar") }, false));
 		sc.fixtures.addAll(Arrays.asList(facts));
 
 		TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
@@ -368,8 +387,8 @@
 		Scenario sc = new Scenario();
 		FactData[] facts = new FactData[] {
 				new FactData("Cheese", "c1", new FieldData[] {
-						new FieldData("type", "cheddar", false),
-						new FieldData("price", "42", false) },  false)
+						new FieldData("type", "cheddar"),
+						new FieldData("price", "42") },  false)
 
 				};
 		sc.globals.add(new FactData("Person", "p", new FieldData[0] , false));
@@ -430,10 +449,10 @@
 
 	public void testIntgerationStateful() throws Exception {
 		Scenario sc = new Scenario();
-		sc.fixtures.add(new FactData("Cheese", "c1", new FieldData[] {new FieldData("price", "1", false)}, false));
+		sc.fixtures.add(new FactData("Cheese", "c1", new FieldData[] {new FieldData("price", "1")}, false));
 		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 FactData("Cheese", "c2", new FieldData[] {new FieldData("price", "2")}, false));
 		sc.fixtures.add(new VerifyFact("c1", new VerifyField[] {new VerifyField("type", "rule1", "==")}));
 		ex = new ExecutionTrace();
 		sc.fixtures.add(ex);
@@ -460,13 +479,13 @@
 
 	public void testIntegrationWithModify() throws Exception {
 		Scenario sc = new Scenario();
-		sc.fixtures.add(new FactData("Cheese", "c1", new FieldData[] {new FieldData("price", "1", false)}, false));
+		sc.fixtures.add(new FactData("Cheese", "c1", new FieldData[] {new FieldData("price", "1")}, false));
 
 		sc.fixtures.add(new ExecutionTrace());
 
 		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 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", "==")}));
@@ -492,8 +511,8 @@
 
 	public void testIntegrationWithRetract() throws Exception {
 		Scenario sc = new Scenario();
-		sc.fixtures.add(new FactData("Cheese", "c1", new FieldData[] {new FieldData("price", "46", false), new FieldData("type", "XXX", false)}, false));
-		sc.fixtures.add(new FactData("Cheese", "c2", new FieldData[] {new FieldData("price", "42", false)}, false));
+		sc.fixtures.add(new FactData("Cheese", "c1", new FieldData[] {new FieldData("price", "46"), new FieldData("type", "XXX")}, false));
+		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", "==")}));
@@ -525,8 +544,8 @@
 		Scenario sc = new Scenario();
 		FactData[] facts = new FactData[] {
 				new FactData("Cheese", "c1", new FieldData[] {
-						new FieldData("type", "cheddar", false),
-						new FieldData("price", "42", false) }, false)
+						new FieldData("type", "cheddar"),
+						new FieldData("price", "42") }, false)
 
 				};
 		sc.fixtures.addAll(Arrays.asList(facts));




More information about the jboss-svn-commits mailing list