package org.infinispan.test.fwk; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.util.function.Predicate; import org.testng.IMethodInstance; import org.testng.IMethodInterceptor; /** * See {@link ChainMethodInterceptor}. Works in a similar way as annotating test class * with {@link org.testng.annotations.Listeners} with {@link IMethodInterceptor} but allows * multiple interceptors and multiple filters. * * @author Radim Vansa <rvansa@redhat.com> */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface TestSelector { /** * Filters are applied before the interceptors to remove unwanted methods. */ Class<? extends Predicate<IMethodInstance>>[] filters() default {}; /** * Interceptors are applied later to e.g. sort methods. */ Class<? extends IMethodInterceptor>[] interceptors() default {}; }