Browse Source
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3467 50f2f4bb-b051-0410-bef5-90022cba6387pull/1/head
3 changed files with 82 additions and 1 deletions
@ -0,0 +1,8 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<beans xmlns="http://www.springframework.org/schema/beans" |
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||||
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> |
||||||
|
|
||||||
|
<bean id="fooFactory" class="org.springframework.beans.factory.FooFactoryBean"/> |
||||||
|
|
||||||
|
</beans> |
||||||
@ -0,0 +1,72 @@ |
|||||||
|
package org.springframework.beans.factory; |
||||||
|
|
||||||
|
import static org.hamcrest.CoreMatchers.instanceOf; |
||||||
|
import static org.junit.Assert.assertNotNull; |
||||||
|
import static org.junit.Assert.assertThat; |
||||||
|
|
||||||
|
import org.junit.Before; |
||||||
|
import org.junit.Test; |
||||||
|
import org.springframework.beans.factory.BeanFactory; |
||||||
|
import org.springframework.beans.factory.config.AbstractFactoryBean; |
||||||
|
import org.springframework.beans.factory.xml.XmlBeanFactory; |
||||||
|
import org.springframework.core.io.ClassPathResource; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Written with the intention of reproducing SPR-7318. |
||||||
|
* |
||||||
|
* @author Chris Beams |
||||||
|
*/ |
||||||
|
public class FactoryBeanLookupTests { |
||||||
|
private BeanFactory beanFactory; |
||||||
|
|
||||||
|
@Before |
||||||
|
public void setUp() { |
||||||
|
beanFactory = new XmlBeanFactory( |
||||||
|
new ClassPathResource("FactoryBeanLookupTests-context.xml", this.getClass())); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void factoryBeanLookupByNameDereferencing() { |
||||||
|
Object fooFactory = beanFactory.getBean("&fooFactory"); |
||||||
|
assertThat(fooFactory, instanceOf(FooFactoryBean.class)); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void factoryBeanLookupByType() { |
||||||
|
FooFactoryBean fooFactory = beanFactory.getBean(FooFactoryBean.class); |
||||||
|
assertNotNull(fooFactory); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void factoryBeanLookupByTypeAndNameDereference() { |
||||||
|
FooFactoryBean fooFactory = beanFactory.getBean("&fooFactory", FooFactoryBean.class); |
||||||
|
assertNotNull(fooFactory); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void factoryBeanObjectLookupByName() { |
||||||
|
Object fooFactory = beanFactory.getBean("fooFactory"); |
||||||
|
assertThat(fooFactory, instanceOf(Foo.class)); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void factoryBeanObjectLookupByNameAndType() { |
||||||
|
Foo foo = beanFactory.getBean("fooFactory", Foo.class); |
||||||
|
assertNotNull(foo); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
class FooFactoryBean extends AbstractFactoryBean<Foo> { |
||||||
|
@Override |
||||||
|
protected Foo createInstance() throws Exception { |
||||||
|
return new Foo(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Class<?> getObjectType() { |
||||||
|
return Foo.class; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
class Foo { } |
||||||
Loading…
Reference in new issue