From db1e3ffd7974dbf19aa4c4a3e13c854f614984fa Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Wed, 2 Jun 2010 12:58:59 +0000 Subject: [PATCH] Added a test to prove that @Qualifier works in conjunction with @Bean methods after some confusion by users that it may not. git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3378 50f2f4bb-b051-0410-bef5-90022cba6387 --- .../BeanMethodQualificationTests.java | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 org.springframework.context/src/test/java/org/springframework/context/annotation/configuration/BeanMethodQualificationTests.java diff --git a/org.springframework.context/src/test/java/org/springframework/context/annotation/configuration/BeanMethodQualificationTests.java b/org.springframework.context/src/test/java/org/springframework/context/annotation/configuration/BeanMethodQualificationTests.java new file mode 100644 index 00000000000..3ead1c5b04d --- /dev/null +++ b/org.springframework.context/src/test/java/org/springframework/context/annotation/configuration/BeanMethodQualificationTests.java @@ -0,0 +1,52 @@ +package org.springframework.context.annotation.configuration; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.junit.Assert.assertThat; + +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +import test.beans.TestBean; + +/** + * Tests proving that @Qualifier annotations work when used + * with @Configuration classes on @Bean methods. + * + * @author Chris Beams + */ +public class BeanMethodQualificationTests { + + @Test + public void test() { + ApplicationContext ctx = + new AnnotationConfigApplicationContext(Config.class, Pojo.class); + Pojo pojo = ctx.getBean(Pojo.class); + assertThat(pojo.testBean.getName(), equalTo("interesting")); + } + + @Configuration + static class Config { + @Bean + @Qualifier("interesting") + public TestBean testBean1() { + return new TestBean("interesting"); + } + + @Bean + @Qualifier("boring") + public TestBean testBean2() { + return new TestBean("boring"); + } + } + + @Component + static class Pojo { + @Autowired @Qualifier("interesting") TestBean testBean; + } +}