99 lines
1.7 KiB
Java
99 lines
1.7 KiB
Java
package org.springframework.guice;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
import static org.junit.Assert.assertNotNull;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
import org.junit.Before;
|
|
import org.junit.Test;
|
|
|
|
import com.google.inject.Injector;
|
|
|
|
public abstract class AbstractCompleteWiringTests {
|
|
|
|
private Injector injector;
|
|
|
|
@Before
|
|
public void init() {
|
|
injector = createInjector();
|
|
}
|
|
|
|
protected abstract Injector createInjector();
|
|
|
|
@Test
|
|
public void injectInstance() {
|
|
Bar bar = new Bar();
|
|
injector.injectMembers(bar);
|
|
assertNotNull(bar.service);
|
|
}
|
|
|
|
@Test
|
|
public void memberInjector() {
|
|
Bar bar = new Bar();
|
|
injector.getMembersInjector(Bar.class).injectMembers(bar);
|
|
assertNotNull(bar.service);
|
|
}
|
|
|
|
@Test
|
|
public void getInstanceUnbound() {
|
|
assertNotNull(injector.getInstance(Foo.class));
|
|
}
|
|
|
|
@Test
|
|
public void getInstanceBound() {
|
|
assertNotNull(injector.getInstance(Service.class));
|
|
}
|
|
|
|
@Test
|
|
public void getInstanceBoundWithNoInterface() {
|
|
Baz instance = injector.getInstance(Baz.class);
|
|
assertNotNull(instance);
|
|
assertEquals(instance, injector.getInstance(Baz.class));
|
|
}
|
|
|
|
@Test
|
|
public void getProviderUnbound() {
|
|
assertNotNull(injector.getProvider(Foo.class).get());
|
|
}
|
|
|
|
@Test
|
|
public void getProviderBound() {
|
|
assertNotNull(injector.getProvider(Service.class).get());
|
|
}
|
|
|
|
public interface Service {
|
|
}
|
|
|
|
public static class MyService implements Service {
|
|
}
|
|
|
|
public static class Foo {
|
|
|
|
@Inject
|
|
public Foo(Service service) {
|
|
}
|
|
|
|
}
|
|
|
|
public static class Bar {
|
|
|
|
private Service service;
|
|
|
|
@Inject
|
|
public void setService(Service service) {
|
|
this.service = service;
|
|
}
|
|
|
|
}
|
|
|
|
public static class Baz {
|
|
|
|
@Inject
|
|
public Baz(Service service) {
|
|
}
|
|
|
|
}
|
|
|
|
}
|