/** * Method searches for dataprovider methods for the resolver context. * <p> * If {@link ResolveStrategy} is pointing to {@link ResolveStrategy#UNTIL_FIRST_MATCH}, the first found dataprovider * methods of the first resolver will be returned. {@link ResolveStrategy#AGGREGATE_ALL_MATCHES} will aggregate the * results of all resolvers such that all found dataprovider methods are returned. * * @param context to be used for resolving dataprovider methods * @return the found dataprovider methods or an empty list * @throws NullPointerException if and only if given context is {@code null} */ public static List<Method> findDataProviderMethods(DataProviderResolverContext context) { checkNotNull(context, "'context' must not be null"); List<Method> result = new ArrayList<Method>(); for (Class<? extends DataProviderMethodResolver> resolverClass : context.getResolverClasses()) { DataProviderMethodResolver resolver = newInstance(resolverClass); List<Method> dataProviderMethods = resolver.resolve(context); if (context.getResolveStrategy() == ResolveStrategy.UNTIL_FIRST_MATCH && !dataProviderMethods.isEmpty()) { result.addAll(dataProviderMethods); break; } else if (context.getResolveStrategy() == ResolveStrategy.AGGREGATE_ALL_MATCHES) { result.addAll(dataProviderMethods); } } return result; }