package com.netflix.governator.guice.test.mocks.mockito;
import org.mockito.Mockito;
import org.mockito.stubbing.Answer;
import com.netflix.governator.guice.test.mocks.MockHandler;
public class MockitoMockHandler implements MockHandler {
@Override
public <T> T createMock(Class<T> classToMock) {
return Mockito.mock(classToMock);
}
@Override
public <T> T createMock(Class<T> classToMock, Object args) {
if (args instanceof Answer<?>) {
return Mockito.mock(classToMock, (Answer<?>) args);
} else {
throw new IllegalArgumentException(
"MockitoMockHandler only supports arguments of type " + Answer.class.getName() + ". Provided " + args != null
? args.getClass().getName() : "null");
}
}
@Override
public <T> T createSpy(T objectToSpy) {
return Mockito.spy(objectToSpy);
}
@Override
public void resetMock(Object mockToReset) {
Mockito.reset(mockToReset);
}
}