Author: lzoubek(a)redhat.com
Date: 2011-08-17 10:36:59 -0400 (Wed, 17 Aug 2011)
New Revision: 34009
Modified:
trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/config/TestConfigurator.java
Log:
swtbotext: search for Requirement annotations recursively to superclasses
Modified:
trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/config/TestConfigurator.java
===================================================================
---
trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/config/TestConfigurator.java 2011-08-17
14:36:04 UTC (rev 34008)
+++
trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/config/TestConfigurator.java 2011-08-17
14:36:59 UTC (rev 34009)
@@ -322,8 +322,7 @@
* @return
*/
public static boolean isRequiresAnyRuntime(Class<?> klass) {
- SWTBotTestRequires an = klass
- .getAnnotation(SWTBotTestRequires.class);
+ SWTBotTestRequires an = getAnnotation(klass);
if (an==null) {
return false;
}
@@ -337,14 +336,29 @@
* @return
*/
public static boolean isRequiresRunOnce(Class<?> klass) {
- SWTBotTestRequires an = klass
- .getAnnotation(SWTBotTestRequires.class);
+ SWTBotTestRequires an = getAnnotation(klass);
if (an==null) {
return false;
}
return an.runOnce();
}
/**
+ * finds {@link SWTBotTestRequires} annotation in given class or recursive in super
classes
+ * @param klass
+ * @return
+ */
+ private static SWTBotTestRequires getAnnotation(Class<?> klass) {
+ if (klass==null || Object.class.equals(klass)) {
+ return null;
+ }
+ SWTBotTestRequires requies = klass
+ .getAnnotation(SWTBotTestRequires.class);
+ if (requies != null) {
+ return requies;
+ }
+ return getAnnotation(klass.getSuperclass());
+ }
+ /**
* returns list of requirements if given class (Test) can run, all this is
* done by exploring class'es annotations (see {@link SWTBotTestRequires}) and check
against
* current configuration
@@ -352,8 +366,7 @@
*/
public static List<RequirementBase> getClassRequirements(Class<?> klass) {
- SWTBotTestRequires requies = klass
- .getAnnotation(SWTBotTestRequires.class);
+ SWTBotTestRequires requies = getAnnotation(klass);
// internal list
List<RequirementBase> reqs = new ArrayList<RequirementBase>();
reqs.add(RequirementBase.createPrepareViews());