📄 hibernatetemplatetests.java
字号:
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
query1Control.replay();
query2Control.replay();
criteriaControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.setCacheQueries(true);
ht.execute(new HibernateCallback() {
public Object doInHibernate(Session sess) throws HibernateException {
assertNotSame(session, sess);
assertTrue(Proxy.isProxyClass(sess.getClass()));
sess.createQuery("some query");
sess.getNamedQuery("some query name");
sess.createCriteria(TestBean.class);
// should be ignored
sess.close();
return null;
}
});
query1Control.verify();
query2Control.verify();
criteriaControl.verify();
}
public void testExecuteWithCacheQueriesAndCacheRegion() throws HibernateException {
MockControl query1Control = MockControl.createControl(Query.class);
Query query1 = (Query) query1Control.getMock();
MockControl query2Control = MockControl.createControl(Query.class);
Query query2 = (Query) query2Control.getMock();
MockControl criteriaControl = MockControl.createControl(Criteria.class);
Criteria criteria = (Criteria) criteriaControl.getMock();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createQuery("some query");
sessionControl.setReturnValue(query1);
query1.setCacheable(true);
query1Control.setReturnValue(query1, 1);
query1.setCacheRegion("myRegion");
query1Control.setReturnValue(query1, 1);
session.getNamedQuery("some query name");
sessionControl.setReturnValue(query2);
query2.setCacheable(true);
query2Control.setReturnValue(query2, 1);
query2.setCacheRegion("myRegion");
query2Control.setReturnValue(query2, 1);
session.createCriteria(TestBean.class);
sessionControl.setReturnValue(criteria, 1);
criteria.setCacheable(true);
criteriaControl.setReturnValue(criteria, 1);
criteria.setCacheRegion("myRegion");
criteriaControl.setReturnValue(criteria, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
query1Control.replay();
query2Control.replay();
criteriaControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.setCacheQueries(true);
ht.setQueryCacheRegion("myRegion");
ht.execute(new HibernateCallback() {
public Object doInHibernate(Session sess) throws HibernateException {
assertNotSame(session, sess);
assertTrue(Proxy.isProxyClass(sess.getClass()));
sess.createQuery("some query");
sess.getNamedQuery("some query name");
sess.createCriteria(TestBean.class);
// should be ignored
sess.close();
return null;
}
});
query1Control.verify();
query2Control.verify();
criteriaControl.verify();
}
public void testExecuteWithCacheQueriesAndCacheRegionAndNativeSession() throws HibernateException {
MockControl query1Control = MockControl.createControl(Query.class);
Query query1 = (Query) query1Control.getMock();
MockControl query2Control = MockControl.createControl(Query.class);
Query query2 = (Query) query2Control.getMock();
MockControl criteriaControl = MockControl.createControl(Criteria.class);
Criteria criteria = (Criteria) criteriaControl.getMock();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createQuery("some query");
sessionControl.setReturnValue(query1);
session.getNamedQuery("some query name");
sessionControl.setReturnValue(query2);
session.createCriteria(TestBean.class);
sessionControl.setReturnValue(criteria, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
query1Control.replay();
query2Control.replay();
criteriaControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.setExposeNativeSession(true);
ht.setCacheQueries(true);
ht.setQueryCacheRegion("myRegion");
ht.execute(new HibernateCallback() {
public Object doInHibernate(Session sess) throws HibernateException {
assertSame(session, sess);
sess.createQuery("some query");
sess.getNamedQuery("some query name");
sess.createCriteria(TestBean.class);
return null;
}
});
query1Control.verify();
query2Control.verify();
criteriaControl.verify();
}
public void testExecuteWithFetchSizeAndMaxResults() throws HibernateException {
MockControl query1Control = MockControl.createControl(Query.class);
Query query1 = (Query) query1Control.getMock();
MockControl query2Control = MockControl.createControl(Query.class);
Query query2 = (Query) query2Control.getMock();
MockControl criteriaControl = MockControl.createControl(Criteria.class);
Criteria criteria = (Criteria) criteriaControl.getMock();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createQuery("some query");
sessionControl.setReturnValue(query1);
query1.setFetchSize(10);
query1Control.setReturnValue(query1, 1);
query1.setMaxResults(20);
query1Control.setReturnValue(query1, 1);
session.getNamedQuery("some query name");
sessionControl.setReturnValue(query2);
query2.setFetchSize(10);
query2Control.setReturnValue(query2, 1);
query2.setMaxResults(20);
query2Control.setReturnValue(query2, 1);
session.createCriteria(TestBean.class);
sessionControl.setReturnValue(criteria, 1);
criteria.setFetchSize(10);
criteriaControl.setReturnValue(criteria, 1);
criteria.setMaxResults(20);
criteriaControl.setReturnValue(criteria, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
query1Control.replay();
query2Control.replay();
criteriaControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.setFetchSize(10);
ht.setMaxResults(20);
ht.execute(new HibernateCallback() {
public Object doInHibernate(Session sess) throws HibernateException {
sess.createQuery("some query");
sess.getNamedQuery("some query name");
sess.createCriteria(TestBean.class);
return null;
}
});
query1Control.verify();
query2Control.verify();
criteriaControl.verify();
}
public void testGet() throws HibernateException {
TestBean tb = new TestBean();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.get(TestBean.class, "");
sessionControl.setReturnValue(tb, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
Object result = ht.get(TestBean.class, "");
assertTrue("Correct result", result == tb);
}
public void testGetWithLockMode() throws HibernateException {
TestBean tb = new TestBean();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.get(TestBean.class, "", LockMode.UPGRADE_NOWAIT);
sessionControl.setReturnValue(tb, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
Object result = ht.get(TestBean.class, "", LockMode.UPGRADE_NOWAIT);
assertTrue("Correct result", result == tb);
}
public void testLoad() throws HibernateException {
TestBean tb = new TestBean();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.load(TestBean.class, "");
sessionControl.setReturnValue(tb, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
Object result = ht.load(TestBean.class, "");
assertTrue("Correct result", result == tb);
}
public void testLoadWithNotFound() throws HibernateException {
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.load(TestBean.class, "id");
ObjectNotFoundException onfex = new ObjectNotFoundException("id", TestBean.class);
sessionControl.setThrowable(onfex);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
try {
ht.load(TestBean.class, "id");
fail("Should have thrown HibernateObjectRetrievalFailureException");
}
catch (HibernateObjectRetrievalFailureException ex) {
// expected
assertEquals(TestBean.class, ex.getPersistentClass());
assertEquals("id", ex.getIdentifier());
assertEquals(onfex, ex.getCause());
}
}
public void testLoadWithLockMode() throws HibernateException {
TestBean tb = new TestBean();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.load(TestBean.class, "", LockMode.UPGRADE);
sessionControl.setReturnValue(tb, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
Object result = ht.load(TestBean.class, "", LockMode.UPGRADE);
assertTrue("Correct result", result == tb);
}
public void testLoadWithObject() throws HibernateException {
TestBean tb = new TestBean();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.load(tb, "");
sessionControl.setVoidCallable(1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.load(tb, "");
}
public void testLoadAll() throws HibernateException {
MockControl criteriaControl = MockControl.createControl(Criteria.class);
Criteria criteria = (Criteria) criteriaControl.getMock();
List list = new ArrayList();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createCriteria(TestBean.class);
sessionControl.setReturnValue(criteria, 1);
criteria.list();
criteriaControl.setReturnValue(list, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
criteriaControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
List result = ht.loadAll(TestBean.class);
assertTrue("Correct result", result == list);
criteriaControl.verify();
}
public void testLoadAllWithCacheable() throws HibernateException {
MockControl criteriaControl = MockControl.createControl(Criteria.class);
Criteria criteria = (Criteria) criteriaControl.getMock();
List list = new ArrayList();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createCriteria(TestBean.class);
sessionControl.setReturnValue(criteria, 1);
criteria.setCacheable(true);
criteriaControl.setReturnValue(criteria, 1);
criteria.list();
criteriaControl.setReturnValue(list, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
criteriaControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.setCacheQueries(true);
List result = ht.loadAll(TestBean.class);
assertTrue("Correct result", result == list);
criteriaControl.verify();
}
public void testLoadAllWithCacheableAndCacheRegion() throws HibernateException {
MockControl criteriaControl = MockControl.createControl(Criteria.class);
Criteria criteria = (Criteria) criteriaControl.getMock();
List list = new ArrayList();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createCriteria(TestBean.class);
sessionControl.setReturnValue(criteria, 1);
criteria.setCacheable(true);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -