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.

The 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 static java.lang.reflect.Modifier.isNative;
import static java.lang.reflect.Modifier.isStatic;

import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.Nullable;

import mockit.internal.state.TestRun;

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 - 2025 Weber Informatics LLC | Privacy Policy