Skip to content

Instantly share code, notes, and snippets.

@mlk
Created March 22, 2013 10:07
Show Gist options
  • Save mlk/5220259 to your computer and use it in GitHub Desktop.
Save mlk/5220259 to your computer and use it in GitHub Desktop.
public class AccountTest {
@Test
public void test() {
Injector injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(MyClass.class).toProvider(MyClassProvider.class);
}
});
MyClassUser user = injector.getInstance(MyClassUser.class);
assertTrue(user.get().myProvider);
}
}
class MyClassUser {
Provider<MyClass> provider;
@com.google.inject.Inject
public MyClassUser(Provider<MyClass> provider) {
this.provider = provider;
}
MyClass get() {
return provider.get();
}
}
class MyClass {
boolean myProvider = false;
}
class MyClass2 extends MyClass {}
class MyClassProvider implements Provider<MyClass> {
Provider<MyClass2> provider;
@com.google.inject.Inject
public MyClassProvider(Provider<MyClass2> provider) {
this.provider = provider;
}
@Override
public MyClass get() {
MyClass c = provider.get();
c.myProvider = true;
return c;
}
public String toString() {
return "Our provider";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment