### Question:
AnnComponentManager { public Collection<Class<? extends Component>> getComponentsOfType(Class type) { Collection<Class<? extends Component>> result = components.stream() .filter(component -> type.isAssignableFrom(component)) .collect(Collectors.toCollection(ArrayList::new)); return result; } private  AnnComponentManager(); static void setComponentClassNames(List<String> componentClassNames); static void setReflectionScanner(Reflections ref); static AnnComponentManager getInstance(); Collection<Class<? extends Component>> getComponents(); SortedSet<String> getComponentStrings(); SortedSet<String> getComponentStringsOfType(Class type); Class<? extends Component> getComponentClass(String componentName); Collection<Class<? extends Component>> getComponentsOfType(Class type); BidiMap<Class<? extends Component>, String> getComponentsNamed(); BidiMap<Class<? extends Component>, String> getComponentsNamedShort(); @Deprecated static boolean applyConfigEntry(AbstractComponent component, String optionName, T value); static List<Class<? extends Component>> getCoreComponentTypes(Class<? extends Component> component); static String getName(Class<? extends Component> component); static String getName(Component component); static String getShortName(Class<? extends Component> component); static String getShortName(Component component); static String getDescription(Class<? extends Component> component); static String getDescription(Component component); static Set<Field> getConfigOptions(Class<? extends Component> component); static double getVersion(Class<? extends Component> component); static double getVersion(Component component); static boolean addComponentClassName(String e); static String getName(Field f); final static Class[] coreComponentClasses; }### Answer:
@Test public void testGetComponentsOfType() { Collection<Class<? extends Component>> components = AnnComponentManager.getInstance().getComponentsOfType(ReasonerComponent.class); Assert.assertTrue(components.size() >= 1); }