{
assertNoAnnotation(metaData, TestAnnotation.class);
assertTrue(aboveLoader.isRetrieved());
assertTrue(belowLoader.isRetrieved());
BasicAnnotationItem<TestAnnotation> annotationItem = createAnnotationItem(belowLoader, new TestAnnotationImpl(), TestAnnotation.class);
setAnnotations(belowLoader, annotationItem);
assertAnnotation(metaData, TestAnnotation.class);
assertTrue(aboveLoader.isRetrieved());
assertTrue(belowLoader.isRetrieved());
assertAnnotation(metaData, TestAnnotation.class);
assertEquals(aboveChild, aboveLoader.isRetrieved());
assertEquals(belowChild, belowLoader.isRetrieved());
annotationItem = createAnnotationItem(aboveLoader, new TestAnnotationImpl(), TestAnnotation.class);
setAnnotations(aboveLoader, annotationItem);
assertAnnotation(metaData, TestAnnotation.class);
assertTrue(aboveLoader.isRetrieved());
assertFalse(belowLoader.isRetrieved());
assertAnnotation(metaData, TestAnnotation.class);
assertEquals(aboveChild, aboveLoader.isRetrieved());
assertFalse(belowLoader.isRetrieved());
belowLoader.clear();
assertAnnotation(metaData, TestAnnotation.class);
assertTrue(aboveLoader.isRetrieved());
assertFalse(belowLoader.isRetrieved());
annotationItem = createAnnotationItem(belowLoader, new TestAnnotationImpl(), TestAnnotation.class);
setAnnotations(belowLoader, annotationItem);
assertAnnotation(metaData, TestAnnotation.class);
assertTrue(aboveLoader.isRetrieved());
assertFalse(belowLoader.isRetrieved());