hibernategenericdaotest.java
来自「应用泛型以及反射编写的单表操作框架」· Java 代码 · 共 77 行
JAVA
77 行
package org.langsin.core.dao.test;
import java.util.List;
import junit.framework.TestCase;
import org.easymock.EasyMock;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.hibernate.classic.Session;
import org.langsin.core.dao.HibernateGenericDao;
import org.langsin.core.dao.support.Page;
import org.springframework.orm.hibernate3.HibernateTemplate;
public class HibernateGenericDaoTest extends TestCase {
public void testPagedQueryHql() {
int totalNumber = 326;
int pageNo = 12;
int pageSize = 25;
String hql = "from User user where user.name like ? ";
String sHql = " select count (*) from User user where user.name like ? ";
Object[] args = {"test%"};
HibernateGenericDao dao = new HibernateGenericDao();
SessionFactory mockSessionFactory = EasyMock.createMock(SessionFactory.class);
Session mockSession = EasyMock.createMock(Session.class);
Query mockQuery = EasyMock.createMock(Query.class);
HibernateTemplate mockHT = org.easymock.classextension.EasyMock.createMock(HibernateTemplate.class);
List mockList = EasyMock.createMock(List.class);
EasyMock.expect(mockSessionFactory.openSession()).andReturn(mockSession);
EasyMock.expect(mockSession.getSessionFactory()).andReturn(mockSessionFactory);
EasyMock.expect(mockSession.createQuery(hql)).andReturn(mockQuery);
for (int i = 0; i < args.length; i++) {
EasyMock.expect(mockQuery.setParameter(i, args[i])).andReturn(mockQuery);
}
EasyMock.expect(mockSessionFactory.openSession()).andReturn(mockSession);
EasyMock.expect(mockSession.getSessionFactory()).andReturn(mockSessionFactory);
EasyMock.expect(mockSession.createQuery(sHql)).andReturn(mockQuery);
for (int i = 0; i < args.length; i++) {
EasyMock.expect(mockQuery.setParameter(i, args[i])).andReturn(mockQuery);
}
mockSession.flush();
EasyMock.expect(mockQuery.list()).andReturn(mockList);
EasyMock.expect(mockHT.find(sHql, args)).andReturn(mockList);
EasyMock.expect(mockList.get(0)).andReturn((long) totalNumber);
EasyMock.expect(mockQuery.setFirstResult(275)).andReturn(mockQuery);
EasyMock.expect(mockQuery.setMaxResults(25)).andReturn(mockQuery);
EasyMock.expect(mockQuery.list()).andReturn(mockList);
EasyMock.expect(mockList.size()).andReturn(totalNumber);
EasyMock.replay(mockSessionFactory);
EasyMock.replay(mockSession);
EasyMock.replay(mockQuery);
org.easymock.classextension.EasyMock.replay(mockHT);
EasyMock.replay(mockList);
dao.setHibernateTemplate(mockHT);
dao.setSessionFactory(mockSessionFactory);
Page page = dao.pagedQuery(hql, pageNo, pageSize, args);
assertEquals(14, page.getTotalPageCount());
assertEquals(12, page.getCurrentPageNo());
assertTrue(page.hasNextPage());
assertTrue(page.hasPreviousPage());
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?