[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