[jboss-svn-commits] JBL Code SVN: r27708 - in labs/jbossrules/trunk: drools-compiler/src/test/java/org/drools/testframework and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jul 7 14:08:21 EDT 2009
Author: Rikkola
Date: 2009-07-07 14:08:20 -0400 (Tue, 07 Jul 2009)
New Revision: 27708
Modified:
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
labs/jbossrules/trunk/drools-guvnor/Guvnor.launch
Log:
GUVNOR-377 : can't call methods on a global list in test scenario
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 2009-07-07 18:02:39 UTC (rev 27707)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java 2009-07-07 18:08:20 UTC (rev 27708)
@@ -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;
/**
@@ -289,13 +292,30 @@
expectedVal = eval(fld.expected.substring(1), this.populatedData);
}
st.put("__expected__", expectedVal);
+
+
+ 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) eval("__fact__." + fld.fieldName
- + " " + fld.operator + " __expected__", st);
+ 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 = 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.operator.equals("==")) {
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 2009-07-07 18:02:39 UTC (rev 27707)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java 2009-07-07 18:08:20 UTC (rev 27708)
@@ -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 {
Modified: labs/jbossrules/trunk/drools-guvnor/Guvnor.launch
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/Guvnor.launch 2009-07-07 18:02:39 UTC (rev 27707)
+++ labs/jbossrules/trunk/drools-guvnor/Guvnor.launch 2009-07-07 18:08:20 UTC (rev 27708)
@@ -60,7 +60,7 @@
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/drools-guvnor/target/drools-guvnor/WEB-INF/lib/jxl-2.4.2.jar" path="3" type="2"/> "/>
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/drools-guvnor/target/drools-guvnor/WEB-INF/lib/log4j-log4j-1.2.14.jar" path="3" type="2"/> "/>
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/drools-guvnor/target/drools-guvnor/WEB-INF/lib/lucene-core-2.3.2.jar" path="3" type="2"/> "/>
-<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/drools-guvnor/target/drools-guvnor/WEB-INF/lib/mvel2-2.0.10.jar" path="3" type="2"/> "/>
+<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/drools-guvnor/target/drools-guvnor/WEB-INF/lib/mvel2-2.0.12-SNAPSHOT.jar" path="3" type="2"/> "/>
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/drools-guvnor/target/drools-guvnor/WEB-INF/lib/nekohtml-1.9.7.jar" path="3" type="2"/> "/>
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/drools-guvnor/target/drools-guvnor/WEB-INF/lib/org.jboss.seam-jboss-seam-2.1.0.GA.jar" path="3" type="2"/> "/>
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/drools-guvnor/target/drools-guvnor/WEB-INF/lib/persistence-api-1.0.jar" path="3" type="2"/> "/>
More information about the jboss-svn-commits
mailing list