### Question:
DataTypeList { public void disableEditModeForChildren(final DataTypeListItem dataTypeListItem) { final String uuid = dataTypeListItem.getDataType().getUUID(); getItems().stream() .filter(item -> Objects.equals(item.getDataType().getParentUUID(), uuid)) .forEach(child -> { child.disableEditMode(); disableEditModeForChildren(child); }); } @Inject  DataTypeList(final View view,
                        final ManagedInstance<DataTypeListItem> listItems,
                        final DataTypeManager dataTypeManager,
                        final DataTypeSearchBar searchBar,
                        final DNDListComponent dndListComponent,
                        final DataTypeStackHash dataTypeStackHash,
                        final DNDDataTypesHandler dndDataTypesHandler,
                        final DataTypeListHighlightHelper highlightHelper,
                        final IsKogito isKogito); HTMLElement getElement(); void setupItems(final List<DataType> dataTypes); Optional<DataTypeListItem> findItem(final DataType dataType); DNDListComponent getDNDListComponent(); List<DataTypeListItem> getItems(); void showNoDataTypesFound(); void showListItems(); void collapseAll(); void enableEditMode(final String dataTypeHash); void registerDataTypeListItemUpdateCallback(final Consumer<DataTypeListItem> onDataTypeListItemUpdate); Optional<DataTypeListItem> findItemByDataTypeHash(final String dataTypeHash); String calculateHash(final DataType dataType); void onDataTypeEditModeToggle(final @Observes DataTypeEditModeToggleEvent event); HTMLElement getListItems(); void importDataObjects(final List<DataObject> selectedDataObjects); void disableEditModeForChildren(final DataTypeListItem dataTypeListItem); List<String> getExistingDataTypesNames(); void highlightLevel(final DataType dataType); void highlightLevel(final Element element); void highlight(final Element element); void cleanLevelHighlightClass(); void cleanHighlightClass();  }### Answer:
@Test public void testDisableEditModeForChildren() { final DataTypeListItem dataTypeListItem = mock(DataTypeListItem.class); final DataType dataType = mock(DataType.class); final String uuid = "uuid"; final String innerUuid = "inner"; final String deepUuid = "deep"; final DataType notChildDataType = mock(DataType.class); final DataTypeListItem notChildItem = mock(DataTypeListItem.class); final DataType childDataType1 = mock(DataType.class); final DataTypeListItem child1 = mock(DataTypeListItem.class); final DataType childDataType2 = mock(DataType.class); final DataTypeListItem child2 = mock(DataTypeListItem.class); final DataType innerDataType = mock(DataType.class); final DataTypeListItem innerDataTypeListItem = mock(DataTypeListItem.class); final DataType deepDataType = mock(DataType.class); final DataTypeListItem deepDataTypeListItem = mock(DataTypeListItem.class); when(deepDataType.getUUID()).thenReturn(deepUuid); when(deepDataType.getParentUUID()).thenReturn(innerUuid); when(deepDataTypeListItem.getDataType()).thenReturn(deepDataType); when(innerDataType.getUUID()).thenReturn(innerUuid); when(innerDataType.getParentUUID()).thenReturn(uuid); when(innerDataTypeListItem.getDataType()).thenReturn(innerDataType); when(notChildDataType.getParentUUID()).thenReturn("other_uuid"); when(notChildItem.getDataType()).thenReturn(notChildDataType); when(child1.getDataType()).thenReturn(childDataType1); when(childDataType1.getParentUUID()).thenReturn(uuid); when(child2.getDataType()).thenReturn(childDataType2); when(childDataType2.getParentUUID()).thenReturn(uuid); when(dataType.getUUID()).thenReturn(uuid); when(dataTypeListItem.getDataType()).thenReturn(dataType); final List<DataTypeListItem> list = asList(child1, notChildItem, child2, innerDataTypeListItem, deepDataTypeListItem); doReturn(list).when(dataTypeList).getItems(); dataTypeList.disableEditModeForChildren(dataTypeListItem); verify(child1).disableEditMode(); verify(child2).disableEditMode(); verify(innerDataTypeListItem).disableEditMode(); verify(deepDataTypeListItem).disableEditMode(); verify(notChildItem, never()).disableEditMode(); }