[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