Package org.powermock.core.classloader
Class MockClassLoaderConfiguration
- java.lang.Object
-
- org.powermock.core.classloader.MockClassLoaderConfiguration
-
public class MockClassLoaderConfiguration extends java.lang.Object
The instance of the class provides information about classes which have to be mocked, loaded without modification or defer to system class loader.
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String[]
deferPackages
private java.util.Set<java.lang.String>
modify
(package private) static java.lang.String[]
PACKAGES_TO_BE_DEFERRED
private static java.lang.String[]
PACKAGES_TO_LOAD_BUT_NOT_MODIFY
private java.lang.String[]
specificClassesToLoadButNotModify
-
Constructor Summary
Constructors Constructor Description MockClassLoaderConfiguration()
Create an instance of configuration without any classes to mock or ignore.MockClassLoaderConfiguration(java.lang.String[] classesToMock, java.lang.String[] packagesToDefer)
Create an instance of configuration
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addClassesToModify(java.lang.String... classes)
Add classes that will be loaded by the mock classloader, i.e.void
addIgnorePackage(java.lang.String... packagesToIgnore)
Add packages or classes to ignore.private boolean
deferConditionMatches(java.lang.String name, java.lang.String packageName)
(package private) java.lang.String[]
getDeferPackages()
private static java.lang.String[]
getPackagesToDefer(java.lang.String[] additionalDeferPackages)
(package private) boolean
shouldDefer(java.lang.String className)
private boolean
shouldDefer(java.lang.String[] packages, java.lang.String name)
private boolean
shouldIgnore(java.lang.String className)
private boolean
shouldIgnore(java.lang.String[] packages, java.lang.String name)
private boolean
shouldLoadUnmodifiedClass(java.lang.String className)
private boolean
shouldLoadWithMockClassloaderWithoutModifications(java.lang.String className)
(package private) boolean
shouldMockClass(java.lang.String className)
(package private) boolean
shouldModify(java.lang.String className)
private boolean
shouldModifyAll()
private boolean
shouldModifyClass(java.lang.String className)
-
-
-
Field Detail
-
PACKAGES_TO_BE_DEFERRED
static final java.lang.String[] PACKAGES_TO_BE_DEFERRED
-
PACKAGES_TO_LOAD_BUT_NOT_MODIFY
private static final java.lang.String[] PACKAGES_TO_LOAD_BUT_NOT_MODIFY
-
specificClassesToLoadButNotModify
private final java.lang.String[] specificClassesToLoadButNotModify
-
modify
private final java.util.Set<java.lang.String> modify
-
deferPackages
private java.lang.String[] deferPackages
-
-
Constructor Detail
-
MockClassLoaderConfiguration
public MockClassLoaderConfiguration()
Create an instance of configuration without any classes to mock or ignore.
-
MockClassLoaderConfiguration
public MockClassLoaderConfiguration(java.lang.String[] classesToMock, java.lang.String[] packagesToDefer)
Create an instance of configuration- Parameters:
classesToMock
- classes that should be modified byMockClassLoader
.packagesToDefer
- classes/packages that should be deferred to system class loader.
-
-
Method Detail
-
addIgnorePackage
public void addIgnorePackage(java.lang.String... packagesToIgnore)
Add packages or classes to ignore. Loading of all classes that locate in the added packages will be delegate to a system classloader.Package should be specified with using mask. Example:
configuration.addIgnorePackage("org.powermock.example.*");
- Parameters:
packagesToIgnore
- fully qualified names of classes or names of packages that end by.*
-
addClassesToModify
public final void addClassesToModify(java.lang.String... classes)
Add classes that will be loaded by the mock classloader, i.e. these classes will be byte-code manipulated to allow for testing. Any classes contained in thePACKAGES_TO_BE_DEFERRED
will be ignored. How ever classes added here have precedence over additionally deferred (ignored) packages (those ignored by the user using @PrepareForTest).- Parameters:
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.
-
shouldDefer
boolean shouldDefer(java.lang.String className)
-
shouldMockClass
boolean shouldMockClass(java.lang.String className)
-
getDeferPackages
java.lang.String[] getDeferPackages()
-
shouldDefer
private boolean shouldDefer(java.lang.String[] packages, java.lang.String name)
-
deferConditionMatches
private boolean deferConditionMatches(java.lang.String name, java.lang.String packageName)
-
shouldIgnore
private boolean shouldIgnore(java.lang.String[] packages, java.lang.String name)
-
shouldLoadUnmodifiedClass
private boolean shouldLoadUnmodifiedClass(java.lang.String className)
-
shouldLoadWithMockClassloaderWithoutModifications
private boolean shouldLoadWithMockClassloaderWithoutModifications(java.lang.String className)
-
shouldModifyClass
private boolean shouldModifyClass(java.lang.String className)
-
shouldIgnore
private boolean shouldIgnore(java.lang.String className)
-
shouldModify
boolean shouldModify(java.lang.String className)
-
shouldModifyAll
private boolean shouldModifyAll()
-
getPackagesToDefer
private static java.lang.String[] getPackagesToDefer(java.lang.String[] additionalDeferPackages)
-
-