### Question:
DataTypeUpdateHandler extends DataTypeHandler { public List<DataType> refreshDependentDataTypes(final DataType dataType, final String oldItemDefinitionName) { final List<DataType> affectedDataTypes = new ArrayList<>(); affectedDataTypes.addAll(handleTopLevelDataTypeUpdate(dataType, oldItemDefinitionName)); affectedDataTypes.addAll(handleNestedDataTypeFieldUpdate(dataType)); return affectedDataTypes; } @Inject  DataTypeUpdateHandler(final ItemDefinitionStore itemDefinitionStore,
                                 final DataTypeStore dataTypeStore,
                                 final DataTypeManager dataTypeManager); void update(final DataType dataType); List<DataType> refreshDependentDataTypes(final DataType dataType,
                                                    final String oldItemDefinitionName);  }### Answer:
@Test public void testRefreshDependentDataTypes() { final DataType dataType = mock(DataType.class); final String oldItemDefinitionName = "oldItemDefinitionName"; final DataType dataType0 = mock(DataType.class); final DataType dataType1 = mock(DataType.class); final DataType dataType2 = mock(DataType.class); final DataType dataType3 = mock(DataType.class); doReturn(asList(dataType0, dataType1)).when(handler).handleTopLevelDataTypeUpdate(dataType, oldItemDefinitionName); doReturn(asList(dataType2, dataType3)).when(handler).handleNestedDataTypeFieldUpdate(dataType); final List<DataType> expectedDataTypes = asList(dataType0, dataType1, dataType2, dataType3); final List<DataType> actualDataTypes = handler.refreshDependentDataTypes(dataType, oldItemDefinitionName); assertEquals(expectedDataTypes, actualDataTypes); }