ModelMetaDataEnhancer { public HeaderMetaData getHeaderMetaData() { int columnIndex = 0; final Map<Integer, ModelMetaData> map = new HashMap<>(); for (final BaseColumn baseColumn : model.getExpandedColumns()) { if (baseColumn instanceof ConditionCol52) { map.put(columnIndex, new ModelMetaData(model.getPattern((ConditionCol52) baseColumn), PatternType.LHS)); } else if (baseColumn instanceof ActionInsertFactCol52) { final ActionInsertFactCol52 aif = (ActionInsertFactCol52) baseColumn; map.put(columnIndex, new ModelMetaData(aif.getFactType(), aif.getBoundName(), PatternType.RHS)); } else if (baseColumn instanceof ActionSetFieldCol52) { final ActionSetFieldCol52 asf = (ActionSetFieldCol52) baseColumn; map.put(columnIndex, new ModelMetaData(getFactType(asf), asf.getBoundName(), PatternType.RHS)); } columnIndex++; } return new HeaderMetaData(map); } ModelMetaDataEnhancer(final GuidedDecisionTable52 model); HeaderMetaData getHeaderMetaData();  }
@Test public void emptyTableHasEmptyHeaderMetaData() throws Exception { assertTrue(new ModelMetaDataEnhancer(model).getHeaderMetaData() .isEmpty()); }
@Test public void conditionCol52Column() throws Exception { final ArrayList<BaseColumn> columns = new ArrayList<>(); final ConditionCol52 conditionCol52 = new ConditionCol52(); final Pattern52 pattern52 = new Pattern52(); columns.add(conditionCol52); when(model.getExpandedColumns()).thenReturn(columns); when(model.getPattern(conditionCol52)).thenReturn(pattern52); final HeaderMetaData headerMetaData = new ModelMetaDataEnhancer(model) .getHeaderMetaData(); assertEquals(1, headerMetaData.size()); assertEquals(pattern52, headerMetaData.getPatternsByColumnNumber(0).getPattern()); assertEquals(PatternType.LHS, headerMetaData.getPatternsByColumnNumber(0).getPatternType()); }