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

mockit.internal.expectations.ExecutionMode Maven / Gradle / Ivy

Go to download

JMockit is a Java toolkit for automated developer testing. It contains APIs for the creation of the objects to be tested, for mocking dependencies, and for faking external APIs; JUnit (4 & 5) and TestNG test runners are supported. It also contains an advanced code coverage tool.

There is a newer version: 1.49
Show newest version
/*
 * Copyright (c) 2006 Rogério Liesenfeld
 * This file is subject to the terms of the MIT license (see LICENSE.txt).
 */
package mockit.internal.expectations;

import javax.annotation.*;
import static java.lang.reflect.Modifier.*;

import mockit.internal.state.*;

public enum ExecutionMode
{
   Regular
   {
      @Override
      boolean isNativeMethodToBeIgnored(int access) { return false; }

      @Override
      boolean isToExecuteRealImplementation(@Nullable Object instance)
      {
         return instance != null && !TestRun.mockFixture().isInstanceOfMockedClass(instance);
      }
   },

   Partial
   {
      @Override
      boolean isToExecuteRealImplementation(@Nullable Object instance)
      {
         return instance != null && !TestRun.mockFixture().isInstanceOfMockedClass(instance);
      }

      @Override
      boolean isWithRealImplementation(@Nullable Object instance)
      {
         return instance == null || !TestRun.getExecutingTest().isInjectableMock(instance);
      }

      @Override
      boolean isToExecuteRealObjectOverride(@Nonnull Object instance) { return true; }
   },

   PerInstance
   {
      @Override
      boolean isStaticMethodToBeIgnored(int access) { return isStatic(access); }

      @Override
      boolean isToExecuteRealImplementation(@Nullable Object instance)
      {
         return instance == null || !TestRun.getExecutingTest().isMockedInstance(instance);
      }

      @Override
      boolean isToExecuteRealObjectOverride(@Nonnull Object instance)
      {
         return !TestRun.getExecutingTest().isMockedInstance(instance);
      }
   };

   public final boolean isMethodToBeIgnored(int access)
   {
      return isStaticMethodToBeIgnored(access) || isNativeMethodToBeIgnored(access);
   }

   boolean isStaticMethodToBeIgnored(int access) { return false; }
   boolean isNativeMethodToBeIgnored(int access) { return isNative(access); }

   boolean isToExecuteRealImplementation(@Nullable Object instance) { return false; }
   boolean isWithRealImplementation(@Nullable Object instance) { return false; }
   boolean isToExecuteRealObjectOverride(@Nonnull Object instance) { return false; }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy