SSH单元测试代码收拾

SSH单元测试代码整理
package test;

import java.util.List;

import org.junit.Test;

import com.etone.service.ICacheService;
import com.etone.service.ITaskService;
import com.etone.service.OtSystemServicePortType;
import org.apache.log4j.Logger;

public class UnitTestTools extends JdbcHibernateSupport {
	private static final Logger log = Logger.getLogger(UnitTestTools.class);

	@Test
	public void testJdbc() {
		String sql = "select tal.fdiActionNo,tal.fddStartTime"
				+ " from TestActionLog tal where 1=1"
				+ " and tal.fdiTestItemId=" + 20005099
				+ " and tal.fddStartTime>'"
				+ "2011-11-3 10:10:38' order by tal.fdiActionNo asc";
		log.info("########"+this.getJdbcTemplate());
		List list = this.getJdbcTemplate().queryForList(sql);
		log.info("################ list.size =" + list.size());
	}

	public void testCache() {
		ICacheService cs = (ICacheService) context.getBean("cacheService");
		cs.createBussinessCacheData();
	}

	public void testTask() {
		ITaskService ts = (ITaskService) context.getBean("taskService");
		String str = ts.getTestActionLogContent("20005099",
				"2011-11-3 10:10:38");
		log.info("##########" + str);
	}

	public void testWs() {
		OtSystemServicePortType cs = (OtSystemServicePortType) context
				.getBean("wsOtSystemTarget");
		cs.getAreaBusinessVoList("1");

	}

}

 

 

package test;

import javax.sql.DataSource;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.hibernate.FlushMode;
import org.hibernate.HibernateException;
import org.hibernate.JDBCException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.dao.CleanupFailureDataAccessException;
import org.springframework.dao.DataAccessResourceFailureException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.SessionFactoryUtils;
import org.springframework.orm.hibernate3.SessionHolder;
import org.springframework.transaction.support.TransactionSynchronizationManager;

public class JdbcHibernateSupport {
	private static final Logger log = Logger
			.getLogger(JdbcHibernateSupport.class);

	private HibernateTemplate hibernateTemplate;

	private DataSource dataSource;

	private SessionFactory sessionFactory;

	private static final String path = "WebRoot/WEB-INF/";

	private static final String files[] = { "applicationContext-hibernate.xml",
			"log4j.properties" };

	protected static ApplicationContext context;

	public JdbcHibernateSupport() {
		context = new FileSystemXmlApplicationContext(path + files[0]);// 加载spring配置文件
		PropertyConfigurator.configure(path + files[1]);// 加载log4j配置文件
		dataSource = (DataSource) context.getBean("dataSource");// 用于创建JdbcTemplate
		sessionFactory = (SessionFactory) context.getBean("sessionFactory");// 用于创建HibernateTemplate

	}

	public HibernateTemplate getHibernateTemplate() {
		return new HibernateTemplate(sessionFactory);
	}

	public JdbcTemplate getJdbcTemplate() {
		return new JdbcTemplate(dataSource);
	}

	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	public DataSource getDataSource() {

		return dataSource;
	}

	public void flushHibernate() {
		HibernateCallback hibernateCallback = new HibernateCallback() {
			public Object doInHibernate(Session session) {
				try {
					session.flush();
				} catch (HibernateException ex) {
					log.error(ex.getMessage(), ex);
				}
				return null;
			}
		};
		hibernateTemplate.execute(hibernateCallback);
	}

	protected Session getSession(SessionFactory sessionFactory,
			boolean isAllowCreate) throws DataAccessResourceFailureException {
		Session session = SessionFactoryUtils.getSession(sessionFactory,
				isAllowCreate);
		session.setFlushMode(FlushMode.NEVER);
		return session;

	}

	protected void bindResource(Session session, SessionFactory sessionFactory) {
		TransactionSynchronizationManager.bindResource(sessionFactory,
				new SessionHolder(session));
	}

	protected void unBindResource(Session session, SessionFactory sessionFactory) {
		TransactionSynchronizationManager.unbindResource(sessionFactory);
		closeSessionIfNecessary(session, sessionFactory);
	}

	public void closeSessionIfNecessary(Session session,
			SessionFactory sessionFactory)
			throws CleanupFailureDataAccessException {

		if (session == null
				|| TransactionSynchronizationManager
						.hasResource(sessionFactory)) {
			return;
		}
		System.out.println("Closing Hibernate session");
		try {
			session.close();

		} catch (JDBCException ex) {
			throw new CleanupFailureDataAccessException(
					"Could not close Hibernate session", ex.getSQLException());
		} catch (HibernateException ex) {
			throw new CleanupFailureDataAccessException(
					"Could not close Hibernate session", ex);
		}
	}

}