package net.rdrei.android.scdl2.test;
import android.app.Application;
import com.google.inject.AbstractModule;
import com.google.inject.Injector;
import com.google.inject.Module;
import com.google.inject.util.Modules;
import net.rdrei.android.scdl2.guice.SCDLModule;
import org.robolectric.Robolectric;
import roboguice.RoboGuice;
public class TestHelper {
public static void overridenInjector(Object instance, AbstractModule module) {
final Application app = Robolectric.application;
// Allow overriding of integrated classes like Activity
Module moduleOverride = Modules.override(
RoboGuice.newDefaultRoboModule(app)).with(module);
// Also allow overriding custom bindings like URLWrapper
moduleOverride = Modules.override(
new SCDLModule()).with(moduleOverride);
RoboGuice.setBaseApplicationInjector(app, RoboGuice.DEFAULT_STAGE,
moduleOverride);
final Injector injector = TestHelper.getInjector();
injector.injectMembers(instance);
}
public static Injector getInjector() {
return RoboGuice.getInjector(Robolectric.application);
}
}