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 mocking/faking APIs and a code coverage tool, supporting both JUnit and TestNG. The mocking APIs allow all kinds of Java code, without testability restrictions, to be tested in isolation from selected dependencies.

There is a newer version: 1.49
Show newest version
/*
 * Copyright (c) 2006 JMockit developers
 * 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().isUnmockedInstance(instance);
      }

      @Override
      boolean isToExecuteRealObjectOverride(@Nonnull Object instance) {
         return TestRun.getExecutingTest().isUnmockedInstance(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