[jboss-svn-commits] JBL Code SVN: r32045 - in labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src: test/java/org/drools/testframework and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Mar 11 15:58:49 EST 2010
Author: tsurdilovic
Date: 2010-03-11 15:58:49 -0500 (Thu, 11 Mar 2010)
New Revision: 32045
Modified:
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
Log:
BRMS-142
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java 2010-03-11 20:54:08 UTC (rev 32044)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java 2010-03-11 20:58:49 UTC (rev 32045)
@@ -24,6 +24,9 @@
import org.drools.rule.Package;
import org.drools.rule.TimeMachine;
import org.mvel2.MVEL;
+import org.mvel2.ParserContext;
+import org.mvel2.compiler.CompiledExpression;
+import org.mvel2.compiler.ExpressionCompiler;
/**
@@ -290,14 +293,31 @@
}
st.put("__expected__", expectedVal);
- fld.successResult = (Boolean) eval("__fact__." + fld.fieldName
- + " " + fld.operator + " __expected__", st);
+
+ ParserContext ctx = new ParserContext();
+ for ( Map.Entry<String, Object> entry : st.entrySet() ) {
+ ctx.addInput( entry.getKey(),
+ entry.getValue().getClass() );
+ }
+ CompiledExpression expr = new ExpressionCompiler( "__fact__." + fld.fieldName
+ + " " + fld.operator + " __expected__" ).compile( ctx );
+
+ fld.successResult = (Boolean) MVEL.executeExpression( expr,
+ st );
+
+ // fld.successResult = (Boolean) eval("__fact__." + fld.fieldName
+ // + " " + fld.operator + " __expected__", st);
+
+ if (!fld.successResult) {
+ //Object actual = eval("__fact__." + fld.fieldName, st);
+
+ Object actual = MVEL.executeExpression( new ExpressionCompiler( "__fact__." + fld.fieldName ).compile( ctx ),
+ st );
+
+
+ fld.actualResult = (actual != null) ? actual.toString() : "";
- if (!fld.successResult) {
- Object actual = eval("__fact__." + fld.fieldName, st);
- fld.actualResult = (actual != null) ? actual.toString() : "";
-
if (fld.operator.equals("==")) {
fld.explanation = "[" + value.name + "] field [" + fld.fieldName + "] was [" + fld.actualResult
+ "] expected [" + fld.expected + "].";
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java 2010-03-11 20:54:08 UTC (rev 32044)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java 2010-03-11 20:58:49 UTC (rev 32045)
@@ -1,5 +1,7 @@
package org.drools.testframework;
+import static org.mvel2.MVEL.eval;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
@@ -28,6 +30,7 @@
import org.drools.guvnor.client.modeldriven.testing.VerifyRuleFired;
import org.drools.guvnor.server.util.ScenarioXMLPersistence;
import org.drools.rule.TimeMachine;
+import org.mvel2.MVEL;
public class ScenarioRunnerTest extends RuleUnit {
@@ -691,7 +694,45 @@
c2.getType() );
}
-
+
+ /**
+ * Check if global list is empty.
+ */
+ public void testWithGlobalList() throws Exception {
+ Scenario sc = new Scenario();
+ sc.globals.add( new FactData( "List",
+ "testList",
+ new ArrayList(),
+ false ) );
+
+ Expectation[] assertions = new Expectation[2];
+
+ assertions[0] = new VerifyFact( "testList",
+ ls( new VerifyField( "empty",
+ "true",
+ "==" ) ) );
+ assertions[1] = new VerifyFact( "testList",
+ ls( new VerifyField( "size",
+ "0",
+ "==" ) ) );
+
+ sc.fixtures.addAll( Arrays.asList( assertions ) );
+
+ TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+ Thread.currentThread().getContextClassLoader() );
+ resolver.addImport( "java.util.List" );
+
+ MockWorkingMemory wm = new MockWorkingMemory();
+ ScenarioRunner run = new ScenarioRunner( sc,
+ resolver,
+ wm );
+
+ List testList = (List) wm.globals.get( "testList" );
+ assertTrue( testList.isEmpty() );
+ assertEquals( 0,
+ testList.size() );
+ }
+
@SuppressWarnings("deprecation")
// F**** dates in java. What a mess. Someone should die.
public void testSimulatedDate() throws Exception {
More information about the jboss-svn-commits
mailing list