public class MockClassLoader extends DeferSupportingClassLoader
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
CGLIB_ENHANCER |
private static java.lang.String |
CGLIB_METHOD_WRAPPER |
private javassist.ClassPool |
classPool |
private JavaAssistClassMarker |
javaAssistClassMarker |
private java.util.List<MockTransformer> |
mockTransformerChain |
private java.util.Set<java.lang.String> |
modify |
static java.lang.String |
MODIFY_ALL_CLASSES
Pass this string to the constructor to indicate that all classes should
be modified.
|
private static java.lang.String[] |
packagesToBeDeferred |
private java.lang.String[] |
packagesToLoadButNotModify |
private java.lang.String[] |
specificClassesToLoadButNotModify |
deferPackages, deferTo
Constructor and Description |
---|
MockClassLoader() |
MockClassLoader(java.lang.String[] classesToMock)
Creates a new instance of the
MockClassLoader based on the
following parameters: |
MockClassLoader(java.lang.String[] classesToMock,
java.lang.String[] packagesToDefer)
Creates a new instance of the
MockClassLoader based on the
following parameters: |
MockClassLoader(java.lang.String[] classesToMock,
java.lang.String[] packagesToDefer,
UseClassPathAdjuster useClassPathAdjuster)
Creates a new instance of the
MockClassLoader based on the
following parameters: |
MockClassLoader(java.lang.String[] classesToMock,
UseClassPathAdjuster useClassPathAdjuster)
Creates a new instance of the
MockClassLoader based on the
following parameters: |
Modifier and Type | Method and Description |
---|---|
void |
addClassesToModify(java.lang.String... classes)
Add classes that will be loaded by the mock classloader, i.e.
|
private static java.lang.String[] |
getPackagesToDefer(java.lang.String[] additionalDeferPackages) |
private java.lang.Class<?> |
loadMockClass(java.lang.String name)
Load a mocked version of the class.
|
protected java.lang.Class<?> |
loadModifiedClass(java.lang.String s) |
private java.lang.Class<?> |
loadUnmockedClass(java.lang.String name,
java.security.ProtectionDomain protectionDomain) |
void |
setMockTransformerChain(java.util.List<MockTransformer> mockTransformerChain) |
protected boolean |
shouldLoadUnmodifiedClass(java.lang.String className) |
private boolean |
shouldLoadWithMockClassloaderWithoutModifications(java.lang.String className) |
private boolean |
shouldModify(java.lang.String className) |
private boolean |
shouldModifyAll() |
protected boolean |
shouldModifyClass(java.lang.String s) |
addIgnorePackage, cache, findResource, findResources, getResource, getResourceAsStream, getResources, loadClass, shouldDefer, shouldIgnore, shouldModify
addTranslator, delegateLoadingOf, delegateToParent, findClass, loadClassByDelegation, main, run, run, setClassPool, setDomain
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
public static final java.lang.String MODIFY_ALL_CLASSES
private static final java.lang.String CGLIB_ENHANCER
private static final java.lang.String CGLIB_METHOD_WRAPPER
private final JavaAssistClassMarker javaAssistClassMarker
private java.util.List<MockTransformer> mockTransformerChain
private final java.util.Set<java.lang.String> modify
private final java.lang.String[] packagesToLoadButNotModify
private final java.lang.String[] specificClassesToLoadButNotModify
private static final java.lang.String[] packagesToBeDeferred
private final javassist.ClassPool classPool
public MockClassLoader(java.lang.String[] classesToMock, java.lang.String[] packagesToDefer, UseClassPathAdjuster useClassPathAdjuster)
MockClassLoader
based on the
following parameters:classesToMock
- The classes that must be modified to prepare for testability.packagesToDefer
- Classes in these packages will be defered to the system
class-loader.MockClassLoader()
public MockClassLoader(java.lang.String[] classesToMock, java.lang.String[] packagesToDefer)
MockClassLoader
based on the
following parameters:classesToMock
- The classes that must be modified to prepare for testability.packagesToDefer
- Classes in these packages will be defered to the system
class-loader.public MockClassLoader(java.lang.String[] classesToMock, UseClassPathAdjuster useClassPathAdjuster)
MockClassLoader
based on the
following parameters:classesToMock
- The classes that must be modified to prepare for testability.public MockClassLoader(java.lang.String[] classesToMock)
MockClassLoader
based on the
following parameters:classesToMock
- The classes that must be modified to prepare for testability.private static java.lang.String[] getPackagesToDefer(java.lang.String[] additionalDeferPackages)
public final void addClassesToModify(java.lang.String... classes)
packagesToBeDeferred
will be ignored. How ever
classes added here have precedence over additionally deferred (ignored)
packages (those ignored by the user using @PrepareForTest).classes
- The fully qualified name of the classes that will be appended
to the list of classes that will be byte-code modified to
enable testability.protected java.lang.Class<?> loadModifiedClass(java.lang.String s) throws java.lang.ClassFormatError, java.lang.ClassNotFoundException
loadModifiedClass
in class DeferSupportingClassLoader
java.lang.ClassFormatError
java.lang.ClassNotFoundException
private boolean shouldModify(java.lang.String className)
private boolean shouldModifyAll()
private java.lang.Class<?> loadUnmockedClass(java.lang.String name, java.security.ProtectionDomain protectionDomain) throws java.lang.ClassFormatError, java.lang.ClassNotFoundException
java.lang.ClassFormatError
java.lang.ClassNotFoundException
private java.lang.Class<?> loadMockClass(java.lang.String name)
public void setMockTransformerChain(java.util.List<MockTransformer> mockTransformerChain)
protected boolean shouldModifyClass(java.lang.String s)
shouldModifyClass
in class DeferSupportingClassLoader
protected boolean shouldLoadUnmodifiedClass(java.lang.String className)
shouldLoadUnmodifiedClass
in class DeferSupportingClassLoader
private boolean shouldLoadWithMockClassloaderWithoutModifications(java.lang.String className)