public class MockMethodAdvice extends MockMethodDispatcher
Modifier and Type | Class and Description |
---|---|
(package private) static class |
MockMethodAdvice.ForEquals |
(package private) static class |
MockMethodAdvice.ForHashCode |
static class |
MockMethodAdvice.ForReadObject |
(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 |
Modifier and Type | Field and 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 |
(package private) WeakConcurrentMap<java.lang.Object,MockMethodInterceptor> |
interceptors |
private MockMethodAdvice.SelfCallInfo |
selfCallInfo |
Constructor and Description |
---|
MockMethodAdvice(WeakConcurrentMap<java.lang.Object,MockMethodInterceptor> interceptors,
java.lang.String identifier) |
Modifier and Type | Method and 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) |
(package private) static java.lang.Throwable |
hideRecursiveCall(java.lang.Throwable throwable,
int current,
java.lang.Class<?> targetType) |
boolean |
isMock(java.lang.Object instance) |
boolean |
isMocked(java.lang.Object instance) |
boolean |
isOverridden(java.lang.Object instance,
java.lang.reflect.Method origin) |
private static java.lang.StackTraceElement[] |
skipInlineMethodElement(java.lang.StackTraceElement[] elements) |
private static java.lang.Object |
tryInvoke(java.lang.reflect.Method origin,
java.lang.Object instance,
java.lang.Object[] arguments) |
get, set
final WeakConcurrentMap<java.lang.Object,MockMethodInterceptor> interceptors
private final java.lang.String identifier
private final MockMethodAdvice.SelfCallInfo selfCallInfo
private final net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler compiler
private final WeakConcurrentMap<java.lang.Class<?>,java.lang.ref.SoftReference<net.bytebuddy.dynamic.scaffold.MethodGraph>> graphs
public MockMethodAdvice(WeakConcurrentMap<java.lang.Object,MockMethodInterceptor> interceptors, java.lang.String identifier)
@Advice.OnMethodEnter(skipOn=net.bytebuddy.asm.Advice.OnNonDefaultValue.class) private static java.util.concurrent.Callable<?> enter(java.lang.String identifier, @Advice.This java.lang.Object mock, @Advice.Origin java.lang.reflect.Method origin, @Advice.AllArguments java.lang.Object[] arguments) throws java.lang.Throwable
java.lang.Throwable
@Advice.OnMethodExit private static void exit(@Advice.Return(readOnly=false,typing=DYNAMIC) java.lang.Object returned, @Advice.Enter java.util.concurrent.Callable<?> mocked) throws java.lang.Throwable
java.lang.Throwable
static java.lang.Throwable hideRecursiveCall(java.lang.Throwable throwable, int current, java.lang.Class<?> targetType)
public java.util.concurrent.Callable<?> handle(java.lang.Object instance, java.lang.reflect.Method origin, java.lang.Object[] arguments) throws java.lang.Throwable
handle
in class MockMethodDispatcher
java.lang.Throwable
public boolean isMock(java.lang.Object instance)
isMock
in class MockMethodDispatcher
public boolean isMocked(java.lang.Object instance)
isMocked
in class MockMethodDispatcher
public boolean isOverridden(java.lang.Object instance, java.lang.reflect.Method origin)
isOverridden
in class MockMethodDispatcher
private static java.lang.Object tryInvoke(java.lang.reflect.Method origin, java.lang.Object instance, java.lang.Object[] arguments) throws java.lang.Throwable
java.lang.Throwable
private static java.lang.StackTraceElement[] skipInlineMethodElement(java.lang.StackTraceElement[] elements)