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

org.powermock.api.mockito.internal.mockcreation.MockitoStateCleaner Maven / Gradle / Ivy

The newest version!
package org.powermock.api.mockito.internal.mockcreation;

import org.mockito.internal.configuration.GlobalConfiguration;
import org.mockito.internal.progress.ThreadSafeMockingProgress;
import org.powermock.api.support.ClassLoaderUtil;
import org.powermock.reflect.Whitebox;

class MockitoStateCleaner {
    
    void clearMockProgress() {
        clearThreadLocalIn(ThreadSafeMockingProgress.class);
    }

    void clearConfiguration() {
        clearThreadLocalIn(GlobalConfiguration.class);
    }

    private void clearThreadLocalIn(Class cls) {
        Whitebox.getInternalState(cls, ThreadLocal.class).set(null);
        final Class clazz;
        if(ClassLoaderUtil.hasClass(cls, ClassLoader.getSystemClassLoader())) {
            clazz = ClassLoaderUtil.loadClass(cls, ClassLoader.getSystemClassLoader());
        } else {
            clazz = ClassLoaderUtil.loadClass(cls, cls.getClassLoader());
        }
        Whitebox.getInternalState(clazz, ThreadLocal.class).set(null);
    }
    
    
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy