private static void redefineClassesToPrepare(Class<?> testClass, String[] packagesToIgnore, JavaAgentClassRegister agentClassRegister) { final String[] classesToPrepare = new PrepareForTestExtractorImpl(true).getTestClasses(testClass); redefine(classesToPrepare, packagesToIgnore, agentClassRegister); }
private void addTestCase(Set<String> all, AnnotatedElement element) { Class<?> testClass = null; if (element instanceof Class<?>) { testClass = (Class<?>) element; } else if (element instanceof Method) { testClass = ((Method) element).getDeclaringClass(); } addClassHierarchy(all, testClass); }
private void addClassHierarchy(Set<String> all, Class<?> classToMock) { while (classToMock != null && !classToMock.equals(Object.class)) { addInnerClassesAndInterfaces(all, classToMock); all.add(classToMock.getName()); classToMock = classToMock.getSuperclass(); } }
@Override protected String[] getClassesToModify(AnnotatedElement element) { Set<String> all = new LinkedHashSet<String>(); addTestCase(all, element); PrepareForTest prepareForTestAnnotation = element.getAnnotation(PrepareForTest.class); PrepareOnlyThisForTest prepareOnlyThisForTestAnnotation = element.getAnnotation(PrepareOnlyThisForTest.class); for (Class<?> classToMock : classesToMock) { if (!classToMock.equals(IndicateReloadClass.class)) { addClassHierarchy(all, classToMock); addFullyQualifiedNames(all, prepareForTestAnnotation); addFullyQualifiedNames(all, prepareOnlyThisForTestAnnotation);
public MockClassLoaderFactory(Class<?> testClass, String[] packagesToIgnore) { this.testClass = testClass; this.prepareForTestExtractor = new PrepareForTestExtractorImpl(); this.suppressionExtractor = new StaticConstructorSuppressExtractorImpl(); this.packagesToIgnore = packagesToIgnore; arrayMerger = new ArrayMergerImpl(); }
private void addFullyQualifiedNames(Set<String> all, PrepareForTest annotation) { String[] fullyQualifiedNames = annotation.fullyQualifiedNames(); addFullyQualifiedNames(all, fullyQualifiedNames); }
private void addFullyQualifiedNames(Set<String> all, PrepareOnlyThisForTest annotation) { String[] fullyQualifiedNames = annotation.fullyQualifiedNames(); addFullyQualifiedNames(all, fullyQualifiedNames); }