public MockClassLoaderFactory(Class<?> testClass) { this(testClass, new PowerMockIgnorePackagesExtractorImpl().getPackagesToIgnore(testClass)); }
private String[] getPackageToIgnoreWithGlobal(final String[] packageToIgnore) { String[] globalIgnore = getGlobalIgnore(); final String[] allPackageToIgnore; if (globalIgnore != null) { allPackageToIgnore = addGlobalIgnore(packageToIgnore, globalIgnore); } else { allPackageToIgnore = packageToIgnore; } return allPackageToIgnore; }
private boolean extractPackageToIgnore(final AnnotatedElement element, final Set<String> ignoredPackages) { boolean useGlobalFromAnnotation = addValueFromAnnotation(element, ignoredPackages); boolean useGlobalFromSuperclass = addValuesFromSuperclass((Class<?>) element, ignoredPackages); return useGlobalFromAnnotation & useGlobalFromSuperclass; }
TestNGMockClassLoaderFactory() { ignorePackagesExtractor = new PowerMockIgnorePackagesExtractorImpl(); expectedExceptionsExtractor = new PowerMockExpectedExceptionsExtractorImpl(); arrayMerger = new ArrayMergerImpl(); }
@Override public String[] getPackagesToIgnore(AnnotatedElement element) { PowerMockIgnore annotation = element.getAnnotation(PowerMockIgnore.class); boolean useGlobal = true; if (annotation != null){ useGlobal = annotation.globalIgnore(); } Set<String> ignoredPackages = new HashSet<String>(); useGlobal &= extractPackageToIgnore(element, ignoredPackages); final String[] packageToIgnore = ignoredPackages.toArray(new String[ignoredPackages.size()]); if (useGlobal) { return getPackageToIgnoreWithGlobal(packageToIgnore); } else { return packageToIgnore; } }
private boolean addValuesFromSuperclass(final Class<?> element, final Set<String> ignoredPackages) { final Collection<Class<?>> superclasses = new ArrayList<Class<?>>(); Collections.addAll(superclasses, element.getSuperclass()); Collections.addAll(superclasses, element.getInterfaces()); boolean useGlobalIgnore = true; for (Class<?> superclass : superclasses) { if (superclass != null && !superclass.equals(Object.class)) { useGlobalIgnore &= extractPackageToIgnore(superclass, ignoredPackages); } } return useGlobalIgnore; }
private static void redefineClasses(Class<?> testClass, JavaAgentClassRegister agentClassRegister) { final String[] packagesToIgnore = new PowerMockIgnorePackagesExtractorImpl().getPackagesToIgnore(testClass); redefineClassesToPrepare(testClass, packagesToIgnore, agentClassRegister); redefineClassesToSuppress(testClass, packagesToIgnore, agentClassRegister); }