### Question:
DMNDataTypesSubIndex implements DMNSubIndex { @Override public List<DMNSearchableElement> getSearchableElements() { return dataTypeList .getItems() .stream() .map(this::makeDataTypeListItem) .collect(Collectors.toList()); } @Inject  DMNDataTypesSubIndex(final DataTypeList dataTypeList,
                                final DataTypeShortcuts dataTypeShortcuts,
                                final DataTypeStore dataTypeStore); @Override List<DMNSearchableElement> getSearchableElements(); @Override void onNoResultsFound();  }### Answer:
@Test public void testGetSearchableElements() { final DataTypeListItem listItem1 = mock(DataTypeListItem.class); final DataTypeListItem listItem2 = mock(DataTypeListItem.class); final DataTypeListItem listItem3 = mock(DataTypeListItem.class); final DataType dataType1 = mock(DataType.class); final DataType dataType2 = mock(DataType.class); final DataType dataType3 = mock(DataType.class); final String dataTypeName1 = "data type 1"; final String dataTypeName2 = "data type 2"; final String dataTypeName3 = "data type 3"; final HTMLElement htmlElement1 = mock(HTMLElement.class); final HTMLElement htmlElement2 = mock(HTMLElement.class); final HTMLElement htmlElement3 = mock(HTMLElement.class); final List<DataTypeListItem> dataTypeListItems = asList(listItem1, listItem2, listItem3); when(listItem1.getDragAndDropElement()).thenReturn(htmlElement1); when(listItem2.getDragAndDropElement()).thenReturn(htmlElement2); when(listItem3.getDragAndDropElement()).thenReturn(htmlElement3); when(listItem1.getDataType()).thenReturn(dataType1); when(listItem2.getDataType()).thenReturn(dataType2); when(listItem3.getDataType()).thenReturn(dataType3); when(dataType1.getName()).thenReturn(dataTypeName1); when(dataType2.getName()).thenReturn(dataTypeName2); when(dataType3.getName()).thenReturn(dataTypeName3); when(dataTypeList.getItems()).thenReturn(dataTypeListItems); final List<DMNSearchableElement> elements = index.getSearchableElements(); final DMNSearchableElement element1 = elements.get(0); final DMNSearchableElement element2 = elements.get(1); final DMNSearchableElement element3 = elements.get(2); elements.forEach(e -> e.onFound().execute()); assertEquals(3, elements.size()); assertEquals(dataTypeName1, element1.getText()); assertEquals(dataTypeName2, element2.getText()); assertEquals(dataTypeName3, element3.getText()); verify(index).highlight(listItem1); verify(index).highlight(listItem2); verify(index).highlight(listItem3); }