Class MockMethodAdvice
- java.lang.Object
-
- org.mockito.internal.creation.bytebuddy.inject.MockMethodDispatcher
-
- org.mockito.internal.creation.bytebuddy.MockMethodAdvice
-
public class MockMethodAdvice extends MockMethodDispatcher
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
MockMethodAdvice.ConstructorShortcut
(package private) static class
MockMethodAdvice.ForEquals
(package private) static class
MockMethodAdvice.ForHashCode
static class
MockMethodAdvice.ForReadObject
(package private) static class
MockMethodAdvice.ForStatic
(package private) static interface
MockMethodAdvice.Identifier
private static class
MockMethodAdvice.RealMethodCall
private static class
MockMethodAdvice.ReturnValueWrapper
private static class
MockMethodAdvice.SelfCallInfo
private static class
MockMethodAdvice.SerializableRealMethodCall
private static class
MockMethodAdvice.StaticMethodCall
-
Field Summary
Fields Modifier and Type Field Description private net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler
compiler
private WeakConcurrentMap<java.lang.Class<?>,java.lang.ref.SoftReference<net.bytebuddy.dynamic.scaffold.MethodGraph>>
graphs
private java.lang.String
identifier
private WeakConcurrentMap<java.lang.Object,MockMethodInterceptor>
interceptors
private java.util.function.Predicate<java.lang.Class<?>>
isMockConstruction
private DetachedThreadLocal<java.util.Map<java.lang.Class<?>,MockMethodInterceptor>>
mockedStatics
private ConstructionCallback
onConstruction
private MockMethodAdvice.SelfCallInfo
selfCallInfo
-
Constructor Summary
Constructors Constructor Description MockMethodAdvice(WeakConcurrentMap<java.lang.Object,MockMethodInterceptor> interceptors, DetachedThreadLocal<java.util.Map<java.lang.Class<?>,MockMethodInterceptor>> mockedStatics, java.lang.String identifier, java.util.function.Predicate<java.lang.Class<?>> isMockConstruction, ConstructionCallback onConstruction)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.util.concurrent.Callable<?>
enter(java.lang.String identifier, java.lang.Object mock, java.lang.reflect.Method origin, java.lang.Object[] arguments)
private static void
exit(java.lang.Object returned, java.util.concurrent.Callable<?> mocked)
java.util.concurrent.Callable<?>
handle(java.lang.Object instance, java.lang.reflect.Method origin, java.lang.Object[] arguments)
java.lang.Object
handleConstruction(java.lang.Class<?> type, java.lang.Object object, java.lang.Object[] arguments, java.lang.String[] parameterTypeNames)
java.util.concurrent.Callable<?>
handleStatic(java.lang.Class<?> type, java.lang.reflect.Method origin, java.lang.Object[] arguments)
(package private) static java.lang.Throwable
hideRecursiveCall(java.lang.Throwable throwable, int current, java.lang.Class<?> targetType)
boolean
isConstructorMock(java.lang.Class<?> type)
boolean
isMock(java.lang.Object instance)
boolean
isMocked(java.lang.Object instance)
boolean
isMockedStatic(java.lang.Class<?> type)
boolean
isOverridden(java.lang.Object instance, java.lang.reflect.Method origin)
private static java.lang.Object
tryInvoke(java.lang.reflect.Method origin, java.lang.Object instance, java.lang.Object[] arguments)
-
Methods inherited from class org.mockito.internal.creation.bytebuddy.inject.MockMethodDispatcher
get, getStatic, handleConstruction, isConstructorMock, set
-
-
-
-
Field Detail
-
interceptors
private final WeakConcurrentMap<java.lang.Object,MockMethodInterceptor> interceptors
-
mockedStatics
private final DetachedThreadLocal<java.util.Map<java.lang.Class<?>,MockMethodInterceptor>> mockedStatics
-
identifier
private final java.lang.String identifier
-
selfCallInfo
private final MockMethodAdvice.SelfCallInfo selfCallInfo
-
compiler
private final net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler compiler
-
graphs
private final WeakConcurrentMap<java.lang.Class<?>,java.lang.ref.SoftReference<net.bytebuddy.dynamic.scaffold.MethodGraph>> graphs
-
isMockConstruction
private final java.util.function.Predicate<java.lang.Class<?>> isMockConstruction
-
onConstruction
private final ConstructionCallback onConstruction
-
-
Constructor Detail
-
MockMethodAdvice
public MockMethodAdvice(WeakConcurrentMap<java.lang.Object,MockMethodInterceptor> interceptors, DetachedThreadLocal<java.util.Map<java.lang.Class<?>,MockMethodInterceptor>> mockedStatics, java.lang.String identifier, java.util.function.Predicate<java.lang.Class<?>> isMockConstruction, ConstructionCallback onConstruction)
-
-
Method Detail
-
enter
@OnMethodEnter(skipOn=net.bytebuddy.asm.Advice.OnNonDefaultValue.class) private static java.util.concurrent.Callable<?> enter(java.lang.String identifier, @This java.lang.Object mock, @Origin java.lang.reflect.Method origin, @AllArguments java.lang.Object[] arguments) throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
exit
@OnMethodExit private static void exit(@Return(readOnly=false,typing=DYNAMIC) java.lang.Object returned, @Enter java.util.concurrent.Callable<?> mocked) throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
hideRecursiveCall
static java.lang.Throwable hideRecursiveCall(java.lang.Throwable throwable, int current, java.lang.Class<?> targetType)
-
handle
public java.util.concurrent.Callable<?> handle(java.lang.Object instance, java.lang.reflect.Method origin, java.lang.Object[] arguments) throws java.lang.Throwable
- Specified by:
handle
in classMockMethodDispatcher
- Throws:
java.lang.Throwable
-
handleStatic
public java.util.concurrent.Callable<?> handleStatic(java.lang.Class<?> type, java.lang.reflect.Method origin, java.lang.Object[] arguments) throws java.lang.Throwable
- Specified by:
handleStatic
in classMockMethodDispatcher
- Throws:
java.lang.Throwable
-
handleConstruction
public java.lang.Object handleConstruction(java.lang.Class<?> type, java.lang.Object object, java.lang.Object[] arguments, java.lang.String[] parameterTypeNames)
- Specified by:
handleConstruction
in classMockMethodDispatcher
-
isMock
public boolean isMock(java.lang.Object instance)
- Specified by:
isMock
in classMockMethodDispatcher
-
isMocked
public boolean isMocked(java.lang.Object instance)
- Specified by:
isMocked
in classMockMethodDispatcher
-
isMockedStatic
public boolean isMockedStatic(java.lang.Class<?> type)
- Specified by:
isMockedStatic
in classMockMethodDispatcher
-
isOverridden
public boolean isOverridden(java.lang.Object instance, java.lang.reflect.Method origin)
- Specified by:
isOverridden
in classMockMethodDispatcher
-
isConstructorMock
public boolean isConstructorMock(java.lang.Class<?> type)
- Specified by:
isConstructorMock
in classMockMethodDispatcher
-
tryInvoke
private static java.lang.Object tryInvoke(java.lang.reflect.Method origin, java.lang.Object instance, java.lang.Object[] arguments) throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
-