[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="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-guvnor/target/drools-guvnor/WEB-INF/lib/jxl-2.4.2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-guvnor/target/drools-guvnor/WEB-INF/lib/log4j-log4j-1.2.14.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-guvnor/target/drools-guvnor/WEB-INF/lib/lucene-core-2.3.2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-guvnor/target/drools-guvnor/WEB-INF/lib/mvel2-2.0.10.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-guvnor/target/drools-guvnor/WEB-INF/lib/mvel2-2.0.12-SNAPSHOT.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-guvnor/target/drools-guvnor/WEB-INF/lib/nekohtml-1.9.7.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-guvnor/target/drools-guvnor/WEB-INF/lib/org.jboss.seam-jboss-seam-2.1.0.GA.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
 <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/drools-guvnor/target/drools-guvnor/WEB-INF/lib/persistence-api-1.0.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>




More information about the jboss-svn-commits mailing list