@Test public void testNamedProviderInjection_shouldNotBeConfusedWithUnNamedInjection() throws Exception { //GIVEN Scope scope = new ScopeImpl(""); scope.installModules(new SimpleModule()); //WHEN Provider<Foo> provider = scope.getProvider(Foo.class, "bar"); Provider<Foo> provider2 = scope.getProvider(Foo.class, "bar"); Provider<Foo> provider3 = scope.getProvider(Foo.class, FooName.class.getName()); Provider<Foo> provider4 = scope.getProvider(Foo.class); //THEN assertThat(provider.get(), is(namedFooInstance)); assertThat(provider2.get(), is(namedFooInstance)); assertThat(provider3.get(), is(namedFooInstance)); assertThat(provider4.get(), notNullValue()); assertThat(provider, not(sameInstance(provider4))); }