PortableBooleanParameterDefinition p1 = new PortableBooleanParameterDefinition();
p1.setName( "BooleanResult" );
pwd.addResult( p1 );
PortableFloatParameterDefinition p2 = new PortableFloatParameterDefinition();
p2.setName( "FloatResult" );
pwd.addResult( p2 );
PortableIntegerParameterDefinition p3 = new PortableIntegerParameterDefinition();
p3.setName( "IntegerResult" );
pwd.addResult( p3 );
PortableStringParameterDefinition p4 = new PortableStringParameterDefinition();
p4.setName( "StringResult" );
pwd.addResult( p4 );
cols.add( awi );
ActionWorkItemInsertFactCol52 asf1 = new ActionWorkItemInsertFactCol52();
asf1.setBoundName( "$r" );
asf1.setFactField( "ResultBooleanField" );
asf1.setType( SuggestionCompletionEngine.TYPE_BOOLEAN );
asf1.setWorkItemName( "WorkItem" );
asf1.setWorkItemResultParameterName( "BooleanResult" );
asf1.setParameterClassName( Boolean.class.getName() );
cols.add( asf1 );
ActionWorkItemInsertFactCol52 asf2 = new ActionWorkItemInsertFactCol52();
asf2.setBoundName( "$r" );
asf2.setFactField( "ResultFloatField" );
asf2.setType( SuggestionCompletionEngine.TYPE_NUMERIC );
asf2.setWorkItemName( "WorkItem" );
asf2.setWorkItemResultParameterName( "FloatResult" );
asf2.setParameterClassName( Float.class.getName() );
cols.add( asf2 );
ActionWorkItemInsertFactCol52 asf3 = new ActionWorkItemInsertFactCol52();
asf3.setBoundName( "$r" );
asf3.setFactField( "ResultIntegerField" );
asf3.setType( SuggestionCompletionEngine.TYPE_NUMERIC );
asf3.setWorkItemName( "WorkItem" );
asf3.setWorkItemResultParameterName( "IntegerResult" );
asf3.setParameterClassName( Integer.class.getName() );
cols.add( asf3 );
ActionWorkItemInsertFactCol52 asf4 = new ActionWorkItemInsertFactCol52();
asf4.setBoundName( "$r" );
asf4.setFactField( "ResultStringField" );
asf4.setType( SuggestionCompletionEngine.TYPE_STRING );
asf4.setWorkItemName( "WorkItem" );
asf4.setWorkItemResultParameterName( "StringResult" );
asf4.setParameterClassName( String.class.getName() );
cols.add( asf4 );
RuleModel rm = new RuleModel();
allColumns.addAll( cols );
//When using a TemplateDataProvider the assumption is that we
//have a "complete" decision table including AnalysisCol52
allColumns.add( new AnalysisCol52() );
List<DTCellValue52> rowData = upgrader.makeDataRowList( row );
TemplateDataProvider rowDataProvider = new GuidedDTTemplateDataProvider( allColumns,
rowData );
p.doActions( allColumns,
cols,
rowDataProvider,
rowData,
rm );
assertEquals( 2,
rm.rhs.length );
//Examine RuleModel actions
ActionExecuteWorkItem aw = (ActionExecuteWorkItem) rm.rhs[0];
assertNotNull( aw );
ActionInsertFact aif = (ActionInsertFact) rm.rhs[1];
assertNotNull( aif );
//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 );