Class EasyMockMethodInvocationControl<T>

java.lang.Object
org.powermock.api.easymock.internal.invocationcontrol.EasyMockMethodInvocationControl<T>
All Implemented Interfaces:
InvocationHandler, DefaultBehavior, MethodInvocationControl

public class EasyMockMethodInvocationControl<T> extends Object implements MethodInvocationControl
The default implementation of the MethodInvocationControl interface.
  • Field Details

    • invocationHandler

      private org.easymock.internal.MockInvocationHandler invocationHandler
    • mockedMethods

      private Set<Method> mockedMethods
    • mockInstance

      private T mockInstance
    • hasReplayed

      private boolean hasReplayed
    • hasVerified

      private boolean hasVerified
  • Constructor Details

    • EasyMockMethodInvocationControl

      public EasyMockMethodInvocationControl(org.easymock.internal.MockInvocationHandler invocationHandler, Set<Method> methodsToMock, T mockInstance)
      Initializes internal state.
      Parameters:
      invocationHandler - The mock invocation handler to be associated with this instance.
      methodsToMock - The methods that are mocked for this instance. If methodsToMock is null all methods for the invocationHandler are considered to be mocked.
      mockInstance - The actual mock instance. May be null. Even though the mock instance may not be used it's needed to keep a reference to this object otherwise it may be garbage collected in some situations. For example when mocking static methods we don't return the mock object and thus it will be garbage collected (and thus the finalize method will be invoked which will be caught by the proxy and the test will fail because we haven't setup expectations for this method) because then that object has no reference. In order to avoid this we keep a reference to this instance here.
    • EasyMockMethodInvocationControl

      public EasyMockMethodInvocationControl(org.easymock.internal.MockInvocationHandler invocationHandler, Set<Method> methodsToMock)
      Initializes internal state.
      Parameters:
      invocationHandler - The mock invocation handler to be associated with this instance.
      methodsToMock - The methods that are mocked for this instance. If methodsToMock is null all methods for the invocationHandler are considered to be mocked.
  • Method Details

    • isMocked

      public boolean isMocked(Method method)
      Description copied from interface: MethodInvocationControl
      Determine whether a certain method is mocked by this Invocation Control.
      Specified by:
      isMocked in interface MethodInvocationControl
      Parameters:
      method - The method that should be checked.
      Returns:
      true if the method is mocked, false otherwise.
    • invoke

      public Object invoke(Object proxy, Method method, Object[] arguments) throws Throwable
      Specified by:
      invoke in interface InvocationHandler
      Throws:
      Throwable
    • getMockType

      public org.easymock.MockType getMockType()
    • replay

      public Object replay(Object... mocks)
      Description copied from interface: DefaultBehavior
      Replay the given objects or classes. May throw exception if replay is not needed or not supported.
      Specified by:
      replay in interface DefaultBehavior
      Parameters:
      mocks - The object(s) to replay. May be null.
      Returns:
      the result of the replay (may be null).
    • verify

      public Object verify(Object... mocks)
    • reset

      public Object reset(Object... mocks)
      Description copied from interface: DefaultBehavior
      Reset the given objects or classes. May throw exception if reset is not needed or not supported.
      Specified by:
      reset in interface DefaultBehavior
      Parameters:
      mocks - The object(s) to replay. May be null.
      Returns:
      the result of the replay (may be null).