protected <T extends Annotation> void assertAddAnnotationWithPreviousSameObject(MutableMetaData mutable, T annotation, long last) throws Exception
{
assertNotNull(mutable);
assertNotNull(annotation);
Class<? extends Annotation> expected = annotation.annotationType();
MetaData metaData = (MetaData) mutable;
checkAnnotation(expected, metaData.getAnnotation(expected));
checkAnnotation(expected, metaData.getMetaData(expected));
checkAnnotation(expected, metaData.getMetaData(expected.getName(), expected));
checkAnnotation(expected, metaData.getMetaData(expected.getName()));
Annotation result = mutable.addAnnotation(annotation);
checkAnnotation(expected, result);
checkAnnotation(expected, metaData.getAnnotation(expected));
checkAnnotation(expected, metaData.getMetaData(expected));
checkAnnotation(expected, metaData.getMetaData(expected.getName(), expected));
checkAnnotation(expected, metaData.getMetaData(expected.getName()));
assertValidTimeUnchanged(metaData, last);
}