Hello I am using RoboGuice and Mockito in my project I am facing problems resolving SystemServices
in test...
I made a class
public class RoboInstrumentationTestCase extends InstrumentationTestCase {
protected Application application;
protected Context context;
protected Injector injector;
@Override
protected void setUp() throws Exception {
application = mock(Application.class, RETURNS_DEEP_STUBS);
context = mock(RoboActivity.class, RETURNS_DEEP_STUBS);
injector = RoboGuice.setBaseApplicationInjector(application, RoboGuice.DEFAULT_STAGE,
Modules.override(RoboGuice.newDefaultRoboModule(application)).
with( new UtilModule(),
new DatabaseModule(),
new FixtureModule(),
new RepositoryModule(),
new ServiceCoreModule(),
new ServiceModule()
));
when(context.getApplicationContext()).thenReturn(application);
when(application.getApplicationContext()).thenReturn(application);
super.setUp();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
RoboGuice.util.reset();
}
protected Injector getInjector() {
return injector;
}
}
and in other class I need to retrieve the ConnectivityManager
public class ConnectivityUtilImpl implements ConnectivityUtil {
private ConnectivityManager connectivityManager;
@Inject
public void setConnectivityManager(ConnectivityManager connectivityManager) {
this.connectivityManager = connectivityManager;
}
/* (non-Javadoc)
* @see com.devsu.supermaxi.util.impl.ConnectivityUtil#getNetworkInfo(android.content.Context)
*/
@Override
public NetworkInfo getNetworkInfo(){
return connectivityManager.getActiveNetworkInfo();
}
But I get the following error:
java.lang.ClassCastException: Object_Proxy cannot be cast to android.net.ConnectivityManager
at com.devsu.supermaxi.util.impl.ConnectivityUtilImpl.getNetworkInfo(ConnectivityUtilImpl.java:27)
at com.devsu.supermaxi.util.impl.ConnectivityUtilImpl.isConnected(ConnectivityUtilImpl.java:35)
at com.devsu.supermaxi.services.core.JSONService.execute(JSONService.java:144)
at com.devsu.supermaxi.services.core.BaseService.executeJSONService(BaseService.java:196)
at CardValidationService_Proxy.super$executeJSONService$org_json_JSONObject(CardValidationService_Proxy.generated)
at java.lang.reflect.Method.invokeNative(Native Method)
at com.google.dexmaker.stock.ProxyBuilder.callSuper(ProxyBuilder.java:523)
at com.google.dexmaker.mockito.InvocationHandlerAdapter$ProxiedMethod.invoke(InvocationHandlerAdapter.java:98)
at org.mockito.internal.invocation.InvocationImpl.callRealMethod(InvocationImpl.java:108)
at org.mockito.internal.stubbing.answers.CallsRealMethods.answer(CallsRealMethods.java:36)
at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:93)
at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29)
at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:38)
at com.google.dexmaker.mockito.InvocationHandlerAdapter.invoke(InvocationHandlerAdapter.java:54)
at CardValidationService_Proxy.executeJSONService(CardValidationService_Proxy.generated)
at com.devsu.supermaxi.services.core.BaseService.executeSync(BaseService.java:173)
at com.devsu.supermaxi.services.CardValidationService.executeSync(CardValidationService.java:52)
at CardValidationService_Proxy.super$executeSync$org_json_JSONObject(CardValidationService_Proxy.generated)
at java.lang.reflect.Method.invokeNative(Native Method)
at com.google.dexmaker.stock.ProxyBuilder.callSuper(ProxyBuilder.java:523)
at com.google.dexmaker.mockito.InvocationHandlerAdapter$ProxiedMethod.invoke(InvocationHandlerAdapter.java:98)
at org.mockito.internal.invocation.InvocationImpl.callRealMethod(InvocationImpl.java:108)
at org.mockito.internal.stubbing.answers.CallsRealMethods.answer(CallsRealMethods.java:36)
at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:93)
at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29)
at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:38)
at com.google.dexmaker.mockito.InvocationHandlerAdapter.invoke(InvocationHandlerAdapter.java:54)
at CardValidationService_Proxy.executeSync(CardValidationService_Proxy.generated)
at com.devsu.supermaxi.services.test.CardValidationServiceTest.testInvalidCard(CardValidationServiceTest.java:57)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:545)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1575)