private MockClassLoaderBuilder(final ByteCodeFramework byteCodeFramework) { this.byteCodeFramework = byteCodeFramework; transformerChainFactory = byteCodeFramework.createTransformerChainFactory(); extraMockTransformers = new ArrayList<MockTransformer>(); }
public static ByteCodeFramework getByteCodeFrameworkForMethod(final Class<?> testClass, final Method method) { ByteCodeFramework byteCodeFramework = getByteCodeFramework(method); if (byteCodeFramework == null) { byteCodeFramework = getByteCodeFramework(testClass); } if (byteCodeFramework == null) { throw new IllegalArgumentException( String.format( "Either method %s or class %s is annotated by PrepareForTest/PrepareEverythingForTest", method.getName(), testClass.getName() ) ); } return byteCodeFramework; }
public RemovesTestMethodAnnotation removesTestMethodAnnotation(final Class<? extends Annotation> testMethodAnnotation) { return new RemovesTestMethodAnnotation(testClass, testMethodAnnotation, ByteCodeFramework.getByteCodeFrameworkForMethod(testClass, method)); } }
public RemovesTestMethodAnnotation removesTestMethodAnnotation(final Class<? extends Annotation> testMethodAnnotation) { return new RemovesTestMethodAnnotation(testClass, testMethodAnnotation, ByteCodeFramework.getByteCodeFrameworkForTestClass(testClass)); }
public MockClassLoader build() { internalAssertNotNull(testClass, "Test class is null during building classloader. "); final MockClassLoaderConfiguration configuration = new MockClassLoaderConfiguration(classesToModify, packagesToIgnore); final MockClassLoader classLoader = byteCodeFramework.createClassloader(configuration, useClassPathAdjuster); classLoader.setMockTransformerChain(createTransformerChain()); return classLoader; }
public ClassLoader createForClass(final MockTransformer... extraMockTransformer) { final ByteCodeFramework byteCodeFramework = ByteCodeFramework.getByteCodeFrameworkForTestClass(testClass); if (testClass.isAnnotationPresent(PrepareEverythingForTest.class)) { return create(byteCodeFramework, new String[]{MockClassLoader.MODIFY_ALL_CLASSES}, extraMockTransformer); } else { final String[] prepareForTestClasses = prepareForTestExtractor.getTestClasses(testClass); final String[] suppressStaticClasses = suppressionExtractor.getTestClasses(testClass); return create(byteCodeFramework, arrayMerger.mergeArrays(String.class, prepareForTestClasses, suppressStaticClasses), extraMockTransformer); } }
public ClassLoader createForMethod(final Method method, final MockTransformer... extraMockTransformers) { final ByteCodeFramework byteCodeFramework = ByteCodeFramework.getByteCodeFrameworkForMethod(testClass, method); if (method.isAnnotationPresent(PrepareEverythingForTest.class)) { final String[] classesToLoadByMockClassloader = {MockClassLoader.MODIFY_ALL_CLASSES}; return create(byteCodeFramework, classesToLoadByMockClassloader, extraMockTransformers); } else { final String[] suppressStaticClasses = getStaticSuppressionClasses(method); final String[] prepareForTestClasses = prepareForTestExtractor.getTestClasses(method); final String[] classesToLoadByMockClassloader = arrayMerger.mergeArrays(String.class, prepareForTestClasses, suppressStaticClasses); return create(byteCodeFramework, classesToLoadByMockClassloader, extraMockTransformers); } }
public static ByteCodeFramework getByteCodeFrameworkForTestClass(final Class<?> testClass) { ByteCodeFramework byteCodeFramework = getByteCodeFramework(testClass); if (byteCodeFramework == null){ byteCodeFramework = GlobalConfiguration.powerMockConfiguration().getByteCodeFramework(); } return byteCodeFramework; }