@Test
void getAllMethods() throws Exception {

    assertThrows(IllegalArgumentException.class, () -> Search.getAllMethods(null));
    List<Method> methods = Search.getAllMethods(BaseReflectiveSearch.class);
    assertEquals(1, methods.size());
    assertEquals(BaseReflectiveSearch.class.getDeclaredMethod("topMethod"), methods.get(0));
    methods = Search.getAllMethods(InheritedReflectiveSearch.class);
    assertEquals(2, methods.size());
    assertTrue(methods.contains(BaseReflectiveSearch.class.getDeclaredMethod("topMethod")));
    assertTrue(methods.contains(InheritedReflectiveSearch.class.getDeclaredMethod("bottomMethod")));
    methods = Search.getAllMethods(OverridenReflectiveSearch.class);
    assertEquals(3, methods.size());
    assertTrue(methods.contains(BaseReflectiveSearch.class.getDeclaredMethod("topMethod")));
    assertTrue(methods.contains(InheritedReflectiveSearch.class.getDeclaredMethod("bottomMethod")));
    assertTrue(methods.contains(OverridenReflectiveSearch.class.getDeclaredMethod("topMethod")));
}