AbstractDMODataManagementStrategy extends AbstractDataManagementStrategy { protected void loadSuperTypes(final List<String> dataObjectsTypes, final TestToolsView.Presenter testToolsPresenter, final int expectedElements, final SortedMap<String, FactModelTree> dataObjectsFieldsMap, final Map<String, String> superTypesMap, final ScenarioSimulationContext context, final List<String> simpleJavaTypes, final GridWidget gridWidget) { dataObjectsTypes.forEach(factType -> getSuperType(factType, superTypeAggregatorCallBack(dataObjectsTypes, superTypesMap, testToolsPresenter, expectedElements, dataObjectsFieldsMap, context, simpleJavaTypes, gridWidget, factType))); }  @Override void populateTestTools(final TestToolsView.Presenter testToolsPresenter,
                                  final ScenarioSimulationContext context,
                                  final GridWidget gridWidget); FactModelTree getFactModelTree(String factName, Map<String, String> superTypeMap, ModelField[] modelFields); void populateGenericTypeMap(Map<String, List<String>> toPopulate, String factName, String propertyName, boolean isList); void aggregatorCallbackMethod(final TestToolsView.Presenter testToolsPresenter,
                                         final int expectedElements,
                                         final SortedMap<String, FactModelTree> factTypeFieldsMap,
                                         final ScenarioSimulationContext context,
                                         final FactModelTree result,
                                         final List<String> simpleJavaTypes,
                                         final GridWidget gridWidget); void populateFactModelTree(FactModelTree toPopulate, final SortedMap<String, FactModelTree> factTypeFieldsMap);  }
@Test public void loadSuperTypes() { String factType = "factType"; int expectedElement = 1; List<String> dataObjectsType = Arrays.asList(factType); SortedMap<String, FactModelTree> dataObjectsFieldMap = new TreeMap<>(); Map<String, String> superTypesMap = new HashMap<>(); List<String> javaSimpleType = new ArrayList<>(); abstractDMODataManagementStrategySpy.loadSuperTypes(dataObjectsType, testToolsPresenterMock, expectedElement, dataObjectsFieldMap, superTypesMap, scenarioSimulationContextLocal, javaSimpleType, GridWidget.SIMULATION); verify(abstractDMODataManagementStrategySpy, times(1)).superTypeAggregatorCallBack(eq(dataObjectsType), eq(superTypesMap), eq(testToolsPresenterMock), eq(expectedElement), eq(dataObjectsFieldMap), eq(scenarioSimulationContextLocal), eq(javaSimpleType), eq(GridWidget.SIMULATION), eq(factType)); verify(abstractDMODataManagementStrategySpy, times(1)).getSuperType(eq(factType), isA(Callback.class)); }