blob: 62552ef0c119c59bcb9407fb6d8b3c82c0573839 [file] [log] [blame]
package gls.annotations.closures
abstract class AnnotationClosureExhaustiveTestSupport extends GroovyTestCase {
abstract Class getAnnotationClass()
abstract Class getAnnotatedClass()
abstract void verify(Class closureClass)
void testWorksOnClassLevel() {
worksOn(annotatedClass)
}
void testWorksOnMethodLevel() {
worksOn(annotatedClass.getDeclaredMethod("aMethod", Object))
}
void testWorksOnFieldLevel() {
worksOn(annotatedClass.getDeclaredField("aField"))
}
void testWorksOnPropertyLevel() {
worksOn(annotatedClass.getDeclaredField("aProperty"))
}
private worksOn(level) {
verify(level.getAnnotation(getAnnotationClass()).elem())
}
}