[jboss-svn-commits] JBL Code SVN: r15852 - 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 Oct 16 05:45:33 EDT 2007


Author: michael.neale at jboss.com
Date: 2007-10-16 05:45:33 -0400 (Tue, 16 Oct 2007)
New Revision: 15852

Added:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFactValue.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFieldValue.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Assertion.java
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/testframework/ScenarioRunner.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactPopulatorTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
Log:
JBRULES-1271 Test framework

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFactValue.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFactValue.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFactValue.java	2007-10-16 09:45:33 UTC (rev 15852)
@@ -0,0 +1,13 @@
+package org.drools.brms.client.modeldriven.testing;
+
+public class AssertFactValue implements Assertion {
+
+	public AssertFieldValue[] fieldValues;
+
+	/**
+	 * An MVEL expression that will resolve to true or false
+	 */
+	public String expression;
+
+
+}


Property changes on: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFactValue.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFieldValue.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFieldValue.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFieldValue.java	2007-10-16 09:45:33 UTC (rev 15852)
@@ -0,0 +1,11 @@
+package org.drools.brms.client.modeldriven.testing;
+
+import java.io.Serializable;
+
+public class AssertFieldValue implements Serializable {
+
+	public String expected;
+	public String actual;
+	public boolean isChecked;
+
+}


Property changes on: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/AssertFieldValue.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Assertion.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Assertion.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Assertion.java	2007-10-16 09:45:33 UTC (rev 15852)
@@ -0,0 +1,21 @@
+package org.drools.brms.client.modeldriven.testing;
+
+import java.io.Serializable;
+
+/**
+ * All assertions on results.
+ *
+ * Types of assertions:
+ *	- field of a fact expected/actual not null/MVEL
+ *  - rule fired (n times)
+ *  - a fact exists (with field values/MVEL)
+ *  - a fact does not exist (?)
+ *  - a global value (field - or MVEL script)
+ *
+ * @author Michael Neale
+ */
+public interface Assertion extends Serializable {
+
+
+
+}


Property changes on: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Assertion.java
___________________________________________________________________
Name: svn:eol-style
   + native

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-10-16 05:20:21 UTC (rev 15851)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java	2007-10-16 09:45:33 UTC (rev 15852)
@@ -2,12 +2,17 @@
 
 import java.io.Serializable;
 
+/**
+ * This represents a test scenario.
+ * It also encapsulates the result of a scenario run.
+ *
+ * @author Michael Neale
+ */
 public class Scenario implements Serializable {
 
-	public FactData[] facts;
+	public FactData[] facts = new FactData[0];
+	public Assertion[] assertions = new Assertion[0];
 
-
-
 }
 
 

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-10-16 05:20:21 UTC (rev 15851)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java	2007-10-16 09:45:33 UTC (rev 15852)
@@ -1,17 +1,17 @@
 package org.drools.testframework;
 
-import java.util.ArrayList;
+import static org.mvel.MVEL.eval;
+
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 import org.drools.base.TypeResolver;
+import org.drools.brms.client.modeldriven.testing.AssertFactValue;
+import org.drools.brms.client.modeldriven.testing.Assertion;
 import org.drools.brms.client.modeldriven.testing.FactData;
 import org.drools.brms.client.modeldriven.testing.FieldData;
 import org.drools.brms.client.modeldriven.testing.Scenario;
 
-import static org.mvel.MVEL.*;
-
 /**
  * This actually runs the test scenarios.
  *
@@ -27,6 +27,12 @@
 	/**
 	 * @param scenario The scenario to run.
 	 * @param resolver A populated type resolved to be used to resolve the types in the scenario.
+	 *
+	 * For info on how to invoke this, see ContentPackageAssemblerTest.testPackageWithRuleflow in drools-jbrms
+	 * This requires that the classloader for the context be set appropraitely. The PackageBuilder
+	 * can provide a suitable TypeResolver for a given package header, and the Package config can provide
+	 * a classloader.
+	 *
 	 */
 	public ScenarioRunner(Scenario scenario, TypeResolver resolver) throws ClassNotFoundException {
 		Map<String, Object> factData = new HashMap<String, Object>();
@@ -41,9 +47,23 @@
 		}
 
 		this.populatedData = factData;
+
+		for (int i = 0; i < scenario.assertions.length; i++) {
+			Assertion assertion = scenario.assertions[i];
+			if (assertion instanceof AssertFactValue) {
+				verify((AssertFactValue)assertion);
+			}
+		}
 	}
 
 
+
+	private void verify(AssertFactValue value) {
+		
+	}
+
+
+
 	private void populate(FactData fact, Map<String, Object> factData) {
 		for (int i = 0; i < fact.fieldData.length; i++) {
 			FieldData field = fact.fieldData[i];
@@ -54,15 +74,19 @@
 			} else {
 				val = field.value;
 			}
-			Map vars = new HashMap();
+			Map<String, Object> vars = new HashMap<String, Object>();
 			vars.putAll(factData);
 			vars.put("__val__", val);
 			eval(fact.name + "." + field.name + " = __val__", vars);
 		}
 	}
 
+	public Map<String, Object> getFacts() {
+		return this.populatedData;
+	}
 
 
 
 
+
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactPopulatorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactPopulatorTest.java	2007-10-16 05:20:21 UTC (rev 15851)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/FactPopulatorTest.java	2007-10-16 09:45:33 UTC (rev 15852)
@@ -1,11 +1,14 @@
 package org.drools.testframework;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.mvel.ExpressionCompiler;
 import org.mvel.MVEL;
+import org.mvel.ParserContext;
 
 import junit.framework.TestCase;
 
@@ -42,6 +45,9 @@
 		assertEquals(true, d.isEnabled());
 
 
+
+
+
 	}
 
 	public void testMVELFactChecker() throws Exception {

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-10-16 05:20:21 UTC (rev 15851)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java	2007-10-16 09:45:33 UTC (rev 15852)
@@ -41,7 +41,8 @@
 		assertEquals("mic", p.getName());
 		assertEquals(33, p.getAge());
 
-
 	}
 
+
+
 }




More information about the jboss-svn-commits mailing list