package org.test4j.module.spring.strategy.register;
import org.junit.Test;
import org.test4j.fortest.service.UserAnotherDao;
import org.test4j.fortest.service.UserService;
import org.test4j.junit.Test4J;
import org.test4j.module.spring.annotations.AutoBeanInject;
import org.test4j.module.spring.annotations.AutoBeanInject.BeanMap;
import org.test4j.module.spring.annotations.SpringBeanByName;
import org.test4j.module.spring.annotations.SpringContext;
@SpringContext({ "org/test4j/module/spring/testedbeans/xml/data-source.xml" })
@AutoBeanInject(maps = { @BeanMap(intf = "**.*Service", impl = "**.*ServiceImpl"),
@BeanMap(intf = "**.*Dao", impl = "**.*DaoImpl") })
public class RegisterDynamicBeanTest extends Test4J {
@SpringBeanByName
protected UserService userService;
@SpringBeanByName
protected UserAnotherDao userAnotherDao;
@Test
public void getSpringBean() {
want.object(userService).notNull();
Object o = spring.getBean("userAnotherDao");
want.object(o).same(userAnotherDao);
Object userDao = spring.getBean("userDao");
want.object(userDao).notNull();
}
/**
* 测试深度嵌套的setProperty() 时,bean的自动注入
*/
@Test
public void callCascadedDao() {
this.userAnotherDao.callCascadedDao();
}
/**
* 测试自动注入spring bean的时候调用spring init method
*/
@Test
public void testSpringInitMethod() {
int springinit = (Integer) reflector.getField(userAnotherDao, "springinit");
want.number(springinit).isEqualTo(100);
}
}