assertTrue( ri.hasNext() );
}
@Test
public void testExpansionWithGuvnorEnums() {
GuidedDecisionTable52 model = new GuidedDecisionTable52();
final ProjectDataModelOracle projectLoader = ProjectDataModelOracleBuilder.newProjectOracleBuilder()
.addFact( "Driver" )
.addField( new ModelField( "age",
Integer.class.getName(),
ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS,
ModelField.FIELD_ORIGIN.DECLARED,
FieldAccessorsAndMutators.BOTH,
DataType.TYPE_NUMERIC_INTEGER ) )
.addField( new ModelField( "name",
String.class.getName(),
ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS,
ModelField.FIELD_ORIGIN.DECLARED,
FieldAccessorsAndMutators.BOTH,
DataType.TYPE_STRING ) )
.addField( new ModelField( "dateOfBirth",
Boolean.class.getName(),
ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS,
ModelField.FIELD_ORIGIN.DECLARED,
FieldAccessorsAndMutators.BOTH,
DataType.TYPE_DATE ) )
.addField( new ModelField( "approved",
Boolean.class.getName(),
ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS,
ModelField.FIELD_ORIGIN.DECLARED,
FieldAccessorsAndMutators.BOTH,
DataType.TYPE_BOOLEAN ) )
.end()
.build();
final PackageDataModelOracle packageLoader = PackageDataModelOracleBuilder.newPackageOracleBuilder()
.setProjectOracle( projectLoader )
.addEnum( "'Driver.name' : ['f1a', 'f1b'], 'Driver.age' : ['f2a', 'f2b'], 'Driver.dateOfBirth' : ['f3a', 'f3b'], 'Driver.approved' : ['f4a', 'f4b']",
Thread.currentThread().getContextClassLoader() )
.build();
//Emulate server-to-client conversions
final AsyncPackageDataModelOracle oracle = new AsyncPackageDataModelOracleImpl();
final PackageDataModelOracleBaselinePayload dataModel = new PackageDataModelOracleBaselinePayload();
dataModel.setModelFields( projectLoader.getProjectModelFields() );
dataModel.setWorkbenchEnumDefinitions( packageLoader.getPackageWorkbenchDefinitions() );
populateDataModelOracle( mock( Path.class ),
model,
oracle,
dataModel );
Pattern52 p1 = new Pattern52();
p1.setBoundName( "c1" );
p1.setFactType( "Driver" );
ConditionCol52 c1 = new ConditionCol52();
c1.setFactField( "name" );
c1.setOperator( "==" );
c1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL );
p1.getChildColumns().add( c1 );
model.getConditions().add( p1 );
Pattern52 p2 = new Pattern52();
p2.setBoundName( "c2" );
p2.setFactType( "Driver" );
ConditionCol52 c2 = new ConditionCol52();
c2.setFactField( "age" );
c2.setOperator( "==" );
c2.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL );
p2.getChildColumns().add( c2 );
model.getConditions().add( p2 );
Pattern52 p3 = new Pattern52();
p3.setBoundName( "c3" );
p3.setFactType( "Driver" );
ConditionCol52 c3 = new ConditionCol52();
c3.setFactField( "dateOfBirth" );
c3.setOperator( "==" );
c3.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL );
p3.getChildColumns().add( c3 );
model.getConditions().add( p3 );
Pattern52 p4 = new Pattern52();
p4.setBoundName( "c4" );
p4.setFactType( "Driver" );
ConditionCol52 c4 = new ConditionCol52();
c4.setFactField( "approved" );
c4.setOperator( "==" );
c4.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL );
p4.getChildColumns().add( c4 );
model.getConditions().add( p4 );
ActionSetFieldCol52 a1 = new ActionSetFieldCol52();
a1.setBoundName( "c1" );
a1.setFactField( "name" );
model.getActionCols().add( a1 );
ActionInsertFactCol52 a2 = new ActionInsertFactCol52();
a2.setBoundName( "a2" );
a2.setFactType( "Driver" );
a2.setFactField( "name" );
model.getActionCols().add( a2 );
RowExpander re = new RowExpander( model,
oracle );
List<RowExpander.ColumnValues> columns = re.getColumns();