//Examine RuleModel actions
ActionExecuteWorkItem aw = (ActionExecuteWorkItem) rm.rhs[ 0 ];
assertNotNull( aw );
ActionSetField asf = (ActionSetField) rm.rhs[ 1 ];
assertNotNull( asf );
//Check ActionExecuteWorkItem
PortableWorkDefinition mpwd = aw.getWorkDefinition();
assertNotNull( mpwd );
assertEquals( 4,
mpwd.getResults().size() );
PortableBooleanParameterDefinition mp1 = (PortableBooleanParameterDefinition) mpwd.getResult( "BooleanResult" );
assertNotNull( mp1 );
PortableFloatParameterDefinition mp2 = (PortableFloatParameterDefinition) mpwd.getResult( "FloatResult" );
assertNotNull( mp2 );
PortableIntegerParameterDefinition mp3 = (PortableIntegerParameterDefinition) mpwd.getResult( "IntegerResult" );
assertNotNull( mp3 );
PortableStringParameterDefinition mp4 = (PortableStringParameterDefinition) mpwd.getResult( "StringResult" );
assertNotNull( mp4 );
//Check ActionSetField
assertEquals( asf.getVariable(),
"$r" );
assertEquals( 4,
asf.getFieldValues().length );
ActionFieldValue fv1 = asf.getFieldValues()[ 0 ];
assertNotNull( fv1 );
assertTrue( fv1 instanceof ActionWorkItemFieldValue );
ActionWorkItemFieldValue wifv1 = (ActionWorkItemFieldValue) fv1;
assertEquals( "ResultBooleanField",
wifv1.getField() );
assertEquals( DataType.TYPE_BOOLEAN,
wifv1.getType() );
assertEquals( "WorkItem",
wifv1.getWorkItemName() );
assertEquals( "BooleanResult",
wifv1.getWorkItemParameterName() );
assertEquals( Boolean.class.getName(),
wifv1.getWorkItemParameterClassName() );
ActionFieldValue fv2 = asf.getFieldValues()[ 1 ];
assertNotNull( fv2 );
assertTrue( fv2 instanceof ActionWorkItemFieldValue );
ActionWorkItemFieldValue wifv2 = (ActionWorkItemFieldValue) fv2;
assertEquals( "ResultFloatField",
wifv2.getField() );
assertEquals( DataType.TYPE_NUMERIC_FLOAT,
wifv2.getType() );
assertEquals( "WorkItem",
wifv2.getWorkItemName() );
assertEquals( "FloatResult",
wifv2.getWorkItemParameterName() );
assertEquals( Float.class.getName(),
wifv2.getWorkItemParameterClassName() );
ActionFieldValue fv3 = asf.getFieldValues()[ 2 ];
assertNotNull( fv3 );
assertTrue( fv3 instanceof ActionWorkItemFieldValue );
ActionWorkItemFieldValue wifv3 = (ActionWorkItemFieldValue) fv3;
assertEquals( "ResultIntegerField",
wifv3.getField() );
assertEquals( DataType.TYPE_NUMERIC_INTEGER,
wifv3.getType() );
assertEquals( "WorkItem",
wifv3.getWorkItemName() );
assertEquals( "IntegerResult",
wifv3.getWorkItemParameterName() );
assertEquals( Integer.class.getName(),
wifv3.getWorkItemParameterClassName() );
ActionFieldValue fv4 = asf.getFieldValues()[ 3 ];
assertNotNull( fv4 );
assertTrue( fv4 instanceof ActionWorkItemFieldValue );
ActionWorkItemFieldValue wifv4 = (ActionWorkItemFieldValue) fv4;
assertEquals( "ResultStringField",
wifv4.getField() );