@Test
void getInheritedAnnotation() {

    assertThrows(IllegalArgumentException.class, () -> Search.getInheritedAnnotation(null, null));
    assertThrows(IllegalArgumentException.class, () -> Search.getInheritedAnnotation(SuperClass.class, null));
    assertThrows(IllegalArgumentException.class, () -> Search.getInheritedAnnotation(null, TestAnnotation.class));
    Class<TestAnnotation> cls = TestAnnotation.class;
    TestAnnotation anno;
    anno = Search.getInheritedAnnotation(BaseAnnotatedClass.class, cls);
    assertNotNull(anno);
    assertEquals(0, anno.value());
    anno = Search.getInheritedAnnotation(BaseEmptyClass.class, cls);
    assertNotNull(anno);
    assertEquals(1, anno.value());
    anno = Search.getInheritedAnnotation(SuperClass.class, cls);
    assertNotNull(anno);
    assertEquals(1, anno.value());
    anno = Search.getInheritedAnnotation(BaseSuperEmptyClass.class, cls);
    assertNull(anno);
    anno = Search.getInheritedAnnotation(SuperEmptyClass.class, cls);
    assertNull(anno);
}