[jboss-svn-commits] JBL Code SVN: r31171 - in labs/jbossrules/branches/true_modify_20100104/drools-core/src/test: resources/org/drools/reteoo/test and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jan 20 15:55:30 EST 2010


Author: tirelli
Date: 2010-01-20 15:55:29 -0500 (Wed, 20 Jan 2010)
New Revision: 31171

Modified:
   labs/jbossrules/branches/true_modify_20100104/drools-core/src/test/java/org/drools/reteoo/test/dsl/LeftTupleSinkStep.java
   labs/jbossrules/branches/true_modify_20100104/drools-core/src/test/resources/org/drools/reteoo/test/CollectNodeAssertRetractTest.data
Log:
JBRULES-2340: finishing true modify implementation for collect

Modified: labs/jbossrules/branches/true_modify_20100104/drools-core/src/test/java/org/drools/reteoo/test/dsl/LeftTupleSinkStep.java
===================================================================
--- labs/jbossrules/branches/true_modify_20100104/drools-core/src/test/java/org/drools/reteoo/test/dsl/LeftTupleSinkStep.java	2010-01-20 20:45:04 UTC (rev 31170)
+++ labs/jbossrules/branches/true_modify_20100104/drools-core/src/test/java/org/drools/reteoo/test/dsl/LeftTupleSinkStep.java	2010-01-20 20:55:29 UTC (rev 31171)
@@ -19,6 +19,7 @@
 import static org.mockito.Mockito.*;
 
 import java.io.Serializable;
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.Arrays;
@@ -44,6 +45,7 @@
 import org.mvel2.MVEL;
 import org.mvel2.ParserConfiguration;
 import org.mvel2.ParserContext;
+import org.mvel2.PropertyAccessException;
 
 public class LeftTupleSinkStep
     implements
@@ -179,7 +181,7 @@
         Map<String, Object> vars = new HashMap<String, Object>();
         int i = 0;
         for ( LeftTuple tuple : captor.getAllValues() ) {
-            vars.put( "tuple" + (++i),
+            vars.put( "tuple" + (i++),
                       tuple.toFactHandles() );
         }
         // add all context variables, just in case
@@ -199,11 +201,14 @@
         ParserContext mvelctx = new ParserContext( pconf );
         String expression;
         if ( cmd.length == 3 ) {
-            expression = "Assert.assertTrue( " + cmd[2].replaceAll( "h(\\d*)",
-                                                                    "h[$1]" ) + " );";
+            expression = "Assert.assertTrue( " + cmd[2].replaceAll( "h(\\d+)",
+                                                                    "Handles[$1]" ) + " );";
         } else {
-            expression = "Assert.assertThat( " + cmd[2] + ", " + cmd[3].replaceAll( "h(\\d*)",
-                                                                                    "h[$1]" ) + " );";
+            String val = cmd[2].replaceAll( "h(\\d+)",
+            "Handles[$1]" );
+            String matcher = cmd[3].replaceAll( "h(\\d+)",
+                                                "Handles[$1]" );
+            expression = "Assert.assertThat( " + val + ", " + matcher + " );";
         }
         try {
             Serializable compiled = MVEL.compileExpression( expression,
@@ -212,8 +217,15 @@
             // execute the expression
             MVEL.executeExpression( compiled,
                                     vars );
-        } catch ( Exception e ) {
-            Assert.fail( "[ERROR] Executing expression: '" + expression + "'\n" + e.getMessage() );
+        } catch ( PropertyAccessException e ) {
+            String message;
+            if( e.getCause() instanceof InvocationTargetException ) {
+                message = ((InvocationTargetException)e.getCause()).getTargetException().toString();
+            } else {
+                message = e.getMessage();
+            }
+            
+            Assert.fail( "[ERROR] line "+step.getLine()+" - Executing expression: '" + expression + "'\n" + message  );
         }
     }
 

Modified: labs/jbossrules/branches/true_modify_20100104/drools-core/src/test/resources/org/drools/reteoo/test/CollectNodeAssertRetractTest.data
===================================================================
--- labs/jbossrules/branches/true_modify_20100104/drools-core/src/test/resources/org/drools/reteoo/test/CollectNodeAssertRetractTest.data	2010-01-20 20:45:04 UTC (rev 31170)
+++ labs/jbossrules/branches/true_modify_20100104/drools-core/src/test/resources/org/drools/reteoo/test/CollectNodeAssertRetractTest.data	2010-01-20 20:55:29 UTC (rev 31171)
@@ -29,14 +29,16 @@
 	    leftMemory, [[h0]];
 	sink1:
 	    verify, assert, count, 1;
-	    verify, assert, tuple1[1].object, is(instanceOf(java.util.Collection.class));  
-	    verify, assert, tuple1[1].object.isEmpty();  
+	    verify, assert, tuple0[0], sameInstance(h0);
+	    verify, assert, tuple0[1].object, instanceOf( java.util.Collection );  
+	    verify, assert, tuple0[1].object.isEmpty();  
 	retract:
 	    otnLeft1, [h0];   
 	col1:
 	    leftMemory, [];
 	sink1:
 	    verify, retract, count, 1;
+	    verify, retract, tuple0[0], sameInstance(h0);
 	    
 /**    
  * check single right assertion and retraction
@@ -56,25 +58,33 @@
 	
 /**        
  *  check single left then right assertion
- * 
+ */
+ Test "single left then right assertion" 
 	assert:
 	    otnLeft1, [h0];  
+	sink1:
+	    verify, assert, count, 1;
+	    verify, assert, tuple0[1].object.isEmpty();
+	assert:
 	    otnRight1, [h2];
 	col1:
 	    leftMemory, [[h0]];  
 	    rightMemory, [h2];  
 	sink1:
-	    verify 2 assert
-	    verify 1 modify
+	    verify, modify, count, 1;
+	    verify, modify, tuple0[1].object, hasItem( h2.object );
 	retract:
 	    otnLeft1, [h0]; 
 	    otnRight1, [h2];
 	sink1:
-	    verify 2 retract
+	    verify, retract, count, 1;
+	    verify, modify, count, 1; // still 1, so no new calls on the retract
+	    verify, assert, count, 1; // checking just in case
 	   
-	/**    
-	 *  check single right then left assertion
-	 *
+/**    
+ *  check single right then left assertion
+ */
+Test "single right then left assertion" 
 	assert:
 	    otnRight1, [h2];
 	    otnLeft1, [h1];  
@@ -82,16 +92,20 @@
 	    leftMemory, [[h1]];  
 	    rightMemory, [h2];  
 	sink1:
-	    verify 3 assert
+	    verify, assert, count, 1;
+	    verify, assert, tuple0[1].object.isEmpty();
+	    verify, modify, count, 0; // checking, just in case
 	retract:
 	    otnLeft1, [h1]; 
 	    otnRight1, [h2];    
 	sink1:
-	    verify 3 retract
+	    verify, retract, count, 1;
+	    verify, modify, count, 0;
 	
-	/**    
-	 * assert two left and two right, with incremental first removal
-	 *
+/**    
+ * assert two left and two right, with incremental first removal
+ */
+Test "two left and two right" 
 	assert:
 	    otnLeft1, [h0, h1];
 	    otnRight1, [h2, h3];
@@ -100,31 +114,37 @@
 	    leftMemory, [[h1]];  
 	    rightMemory, [h2, h3];  
 	sink1:
-	    verify 5 assert
-	    verify 3 modify
+	    verify, assert, count, 2;
+	    verify, modify, count, 2;
+	    verify, assert, tuple0[0], is( h0 );
+	    verify, assert, tuple1[0], is( h1 );
+	    verify, modify, tuple1[1].object.size() == 2;
+	    verify, modify, tuple1[1].object, hasItem( h2.object );
+	    verify, modify, tuple1[1].object, hasItem( h3.object );
 	retract:
 	    otnLeft1, [h0];
 	col1:
 	    leftMemory, [[h1]];  
 	    rightMemory, [h2, h3];  
 	sink1:
-	    verify 4 retract
+	    verify, retract, count, 1;
+	    verify, retract, tuple0[0], is( h0 );
 	retract:
 	    otnRight1, [h2];	
 	col1:
 	    leftMemory, [[h1]];  
 	    rightMemory, [h3];  
 	sink1:
-	    verify 4 retract
-	    verify 3 modify
+	    verify, retract, count, 1; // still 1, so no retracts were called
+	    verify, modify, count, 2; // still 2, so no modifies were called
 	retract:
 	    otnLeft1, [h1]; 
 	sink1:
-	    verify 5 retract
+	    verify, retract, count, 2; 
 	retract:
 	    otnRight1, [h3]; 
 	col1:
 	    leftMemory, [];  
 	    rightMemory, [];  
-*/
+
 	



More information about the jboss-svn-commits mailing list