@SuppressWarnings("serial")
@Test
public void testColumnValues() {

    GuidedDecisionTable52 model = new GuidedDecisionTable52();
    final ModuleDataModelOracle projectLoader = ModuleDataModelOracleBuilder.newModuleOracleBuilder(new RawMVELEvaluator())
            .addFact("Driver")
            .addField(new ModelField("name",
                                     String.class.getName(),
                                     ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS,
                                     ModelField.FIELD_ORIGIN.DECLARED,
                                     FieldAccessorsAndMutators.BOTH,
                                     DataType.TYPE_STRING))
            .end()
            .build();
    final PackageDataModelOracle packageLoader = PackageDataModelOracleBuilder.newPackageOracleBuilder(new RawMVELEvaluator())
            .setModuleOracle(projectLoader)
            .build();
    //Emulate server-to-client conversions
    final AsyncPackageDataModelOracle oracle = getOracle();
    final PackageDataModelOracleBaselinePayload dataModel = new PackageDataModelOracleBaselinePayload();
    dataModel.setModelFields(projectLoader.getModuleModelFields());
    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);
    c1.setValueList("c1a,c1b");
    p1.getChildColumns().add(c1);
    model.getConditions().add(p1);
    RowExpander re = new RowExpander(model,
                                     oracle);
    List<RowExpander.ColumnValues> columns = re.getColumns();
    assertEquals(4,
                 columns.size());
    assertEquals("",
                 columns.get(0).getCurrentValue().getStringValue());
    assertEquals("",
                 columns.get(1).getCurrentValue().getStringValue());
    assertEquals("",
                 columns.get(2).getCurrentValue().getStringValue());
    assertEquals("c1a",
                 columns.get(3).getCurrentValue().getStringValue());
    columns.get(3).advanceColumnValue();
    assertEquals("c1b",
                 columns.get(3).getCurrentValue().getStringValue());
    columns.get(3).advanceColumnValue();
    assertEquals("c1a",
                 columns.get(3).getCurrentValue().getStringValue());
    columns.get(3).advanceColumnValue();
    assertEquals("c1b",
                 columns.get(3).getCurrentValue().getStringValue());
}