From f759e6e4ab110eb60951259924f18842dc4eaa7e Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Tue, 19 Nov 2019 10:57:34 +0000 Subject: [PATCH] Add test for binding to Map by generic signature See #67 --- .../springframework/guice/MapWiringTests.java | 63 +++++++++++++++++++ .../guice/SuperClassTests.java | 5 +- 2 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 src/test/java/org/springframework/guice/MapWiringTests.java diff --git a/src/test/java/org/springframework/guice/MapWiringTests.java b/src/test/java/org/springframework/guice/MapWiringTests.java new file mode 100644 index 0000000..f40c26b --- /dev/null +++ b/src/test/java/org/springframework/guice/MapWiringTests.java @@ -0,0 +1,63 @@ +package org.springframework.guice; + +import java.util.Map; + +import com.google.inject.AbstractModule; +import org.junit.Test; + +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.guice.annotation.EnableGuiceModules; + +import static org.junit.Assert.assertTrue; + +/** + * Test injecting Map + * + * @author Dave Syer + */ +public class MapWiringTests { + + // Test Guice -> Spring direction + @SuppressWarnings({ "resource", "unused" }) + @Test + public void testProvidesMap() { + AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext( + ModulesConfig.class, FooBar.class); + Bar bar = context.getBean(Bar.class); + } + + @Configuration + @EnableGuiceModules + static class ModulesConfig { + @Bean + TestConfig testConfig() { + return new TestConfig(); + } + } + + @Configuration + static class FooBar { + @Bean + Bar foo(Map foos) { + assertTrue(!foos.isEmpty()); + return new Bar(); + } + + } + + static class TestConfig extends AbstractModule { + @Override + protected void configure() { + bind(Foo.class); + } + } + + static class Foo { + } + + static class Bar { + } + +} diff --git a/src/test/java/org/springframework/guice/SuperClassTests.java b/src/test/java/org/springframework/guice/SuperClassTests.java index 8aee26f..b439af7 100644 --- a/src/test/java/org/springframework/guice/SuperClassTests.java +++ b/src/test/java/org/springframework/guice/SuperClassTests.java @@ -325,6 +325,7 @@ public class SuperClassTests { } private void baseTestSpringFactoryBean(Class configClass) { + @SuppressWarnings("resource") AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext( configClass); @@ -495,8 +496,8 @@ public class SuperClassTests { } - public static class Bar {} - + public static class Bar { + } @Component public static class BarFactory implements FactoryBean {