All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mockit.internal.expectations.invocation.DelegateInvocation Maven / Gradle / Ivy

/*
 * Copyright (c) 2006-2012 Rogério Liesenfeld
 * This file is subject to the terms of the MIT license (see LICENSE.txt).
 */
package mockit.internal.expectations.invocation;

import java.lang.reflect.*;
import java.util.concurrent.*;

import mockit.Invocation;
import mockit.internal.state.*;

final class DelegateInvocation extends Invocation implements Callable
{
   private final InvocationArguments invocationArguments;
   boolean proceedIntoConstructor;

   DelegateInvocation(
      Object invokedInstance, Object[] invokedArguments,
      ExpectedInvocation expectedInvocation, InvocationConstraints constraints)
   {
      super(
         invokedInstance, invokedArguments,
         constraints.invocationCount, constraints.minInvocations, constraints.maxInvocations);
      invocationArguments = expectedInvocation.arguments;
   }

   /**
    * Returns the {@code Method} object corresponding to the mocked method, or {@code null} if it's a mocked
    * constructor.
    */
   public Method call()
   {
      if (invocationArguments.isForConstructor()) {
         proceedIntoConstructor = true;
         return null;
      }

      TestRun.getExecutingTest().markAsProceedingIntoRealImplementation();
      return invocationArguments.getRealMethod().method;
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy