📄 basedaotestcase.java
字号:
package com.cib.dao;import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.hibernate.SessionFactory;import org.springframework.orm.hibernate3.HibernateTemplate;import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;import java.util.Enumeration;import java.util.HashMap;import java.util.Map;import java.util.MissingResourceException;import java.util.ResourceBundle;/** * Base class for running DAO tests. * @author mraible */public abstract class BaseDaoTestCase extends AbstractTransactionalDataSourceSpringContextTests { /** * Log variable for all child classes. Uses LogFactory.getLog(getClass()) from Commons Logging */ protected final Log log = LogFactory.getLog(getClass()); /** * ResourceBundle loaded from src/test/resources/${package.name}/ClassName.properties (if exists) */ protected ResourceBundle rb; /** * Sets AutowireMode to AUTOWIRE_BY_NAME and configures all context files needed to tests DAOs. * @return String array of Spring context files. */ protected String[] getConfigLocations() { setAutowireMode(AUTOWIRE_BY_NAME); return new String[] { "classpath:/applicationContext-resources.xml", "classpath:/applicationContext-dao.xml", "classpath*:/applicationContext.xml", // for modular projects "classpath:**/applicationContext*.xml" // for web projects }; } /** * Default constructor - populates "rb" variable if properties file exists for the class in * src/test/resources. */ public BaseDaoTestCase() { // Since a ResourceBundle is not required for each class, just // do a simple check to see if one exists String className = this.getClass().getName(); try { rb = ResourceBundle.getBundle(className); } catch (MissingResourceException mre) { //log.warn("No resource bundle found for: " + className); } } /** * Utility method to populate a javabean-style object with values * from a Properties file * @param obj the model object to populate * @return Object populated object * @throws Exception if BeanUtils fails to copy properly */ protected Object populate(Object obj) throws Exception { // loop through all the beans methods and set its properties from its .properties file Map<String, String> map = new HashMap<String, String>(); for (Enumeration<String> keys = rb.getKeys(); keys.hasMoreElements();) { String key = keys.nextElement(); map.put(key, rb.getString(key)); } BeanUtils.copyProperties(map, obj); return obj; } /** * Create a HibernateTemplate from the SessionFactory and call flush() and clear() on it. * Designed to be used after "save" methods in tests: http://issues.appfuse.org/browse/APF-178. */ protected void flush() { HibernateTemplate hibernateTemplate = new HibernateTemplate((SessionFactory) applicationContext.getBean("sessionFactory")); hibernateTemplate.flush(); hibernateTemplate.clear(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -