package org.needle4j.injection; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; import static org.junit.Assert.assertThat; import static org.needle4j.injection.InjectionProviders.providerForNamedInstance; import javax.inject.Inject; import javax.inject.Named; import org.junit.Rule; import org.junit.Test; import org.needle4j.junit.NeedleRule; public class InjectionProvidersNamedInstanceInjectionProviderTest { private static final String FOO = "foo"; public static class SomeType { } private final SomeType providedNamedInstance = new SomeType(); @Rule public final NeedleRule needle = new NeedleRule(providerForNamedInstance(FOO, providedNamedInstance)); @Inject private SomeType mockInstance; @Inject @Named(FOO) private SomeType namedInstance; @Test public void shouldInjectNamedInstance() { assertThat(namedInstance, is(providedNamedInstance)); } @Test public void shouldInjectDefaultInstance() { assertThat(mockInstance, not(providedNamedInstance)); } }