use of org.powermock.api.mockito.internal.invocation.MockitoMethodInvocationControl in project powermock by powermock.
the class VerifyNoMoreInteractions method verifyNoMoreInteractions.
private static void verifyNoMoreInteractions(Class<?>... types) {
for (Class<?> type : types) {
final MockitoMethodInvocationControl invocationHandler = (MockitoMethodInvocationControl) MockRepository.getStaticMethodInvocationControl(type);
if (invocationHandler != null) {
invocationHandler.verifyNoMoreInteractions();
}
MockitoNewInvocationControl<?> newInvocationControl = (MockitoNewInvocationControl<?>) MockRepository.getNewInstanceControl(type);
if (newInvocationControl != null) {
newInvocationControl.verifyNoMoreInteractions();
}
}
}
use of org.powermock.api.mockito.internal.invocation.MockitoMethodInvocationControl in project powermock by powermock.
the class PowerMockitoStubberImpl method prepareForStubbing.
private <T> void prepareForStubbing(T mock) {
MockitoMethodInvocationControl invocationControl = (MockitoMethodInvocationControl) MockRepository.getInstanceMethodInvocationControl(mock);
addAnswersForStubbing(invocationControl);
}
use of org.powermock.api.mockito.internal.invocation.MockitoMethodInvocationControl in project powermock by powermock.
the class DefaultMockCreator method createMethodInvocationControl.
@SuppressWarnings("unchecked")
private static <T> MockData<T> createMethodInvocationControl(final String mockName, Class<T> type, Method[] methods, boolean isSpy, Object delegator, MockSettings mockSettings) {
final MockSettingsImpl settings;
if (mockSettings == null) {
// We change the context classloader to the current CL in order for the Mockito
// framework to load it's plugins (such as MockMaker) correctly.
final ClassLoader originalCL = Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader(DefaultMockCreator.class.getClassLoader());
try {
settings = (MockSettingsImpl) Mockito.withSettings();
Plugins.getMockMaker();
} finally {
Thread.currentThread().setContextClassLoader(originalCL);
}
} else {
settings = (MockSettingsImpl) mockSettings;
}
if (isSpy) {
settings.defaultAnswer(Mockito.CALLS_REAL_METHODS);
}
settings.setMockName(new MockNameImpl(mockName));
settings.setTypeToMock(type);
InternalMockHandler mockHandler = MockHandlerFactory.createMockHandler(settings);
MethodInterceptorFilter filter = new PowerMockMethodInterceptorFilter(mockHandler, settings);
final T mock = new ClassImposterizer(new DefaultInstantiatorProvider().getInstantiator(settings)).imposterise(filter, type);
ClassLoader classLoader = mock.getClass().getClassLoader();
if (classLoader instanceof MockClassLoader) {
MockClassLoader mcl = (MockClassLoader) classLoader;
mcl.cache(mock.getClass());
}
final MockitoMethodInvocationControl invocationControl = new MockitoMethodInvocationControl(filter, isSpy && delegator == null ? new Object() : delegator, mock, methods);
return new MockData<T>(invocationControl, mock);
}
use of org.powermock.api.mockito.internal.invocation.MockitoMethodInvocationControl in project powermock by powermock.
the class PowerMockitoStubberImpl method when.
/**
* Supports PowerMockito mocks. If {@code mock} is not a PowerMockito
* mock it will delegate to Mockito.
*
* @see Stubber#when(Object)
*/
@Override
public <T> T when(T instanceMock) {
MockitoMethodInvocationControl invocationControl = (MockitoMethodInvocationControl) MockRepository.getInstanceMethodInvocationControl(instanceMock);
final T returnValue;
if (invocationControl == null) {
returnValue = super.when(instanceMock);
} else {
addAnswersForStubbing(invocationControl);
returnValue = instanceMock;
}
return returnValue;
}
use of org.powermock.api.mockito.internal.invocation.MockitoMethodInvocationControl in project powermock by powermock.
the class PowerMockitoStubberImpl method when.
@Override
public void when(Class<?> classMock) {
MockitoMethodInvocationControl invocationControl = (MockitoMethodInvocationControl) MockRepository.getStaticMethodInvocationControl(classMock);
addAnswersForStubbing(invocationControl);
}
Aggregations