📄 hibernatetemplatetests.java
字号:
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.getNamedQuery("some query name");
sessionControl.setReturnValue(query, 1);
query.setParameter("myparam1", "myvalue1", Hibernate.STRING);
queryControl.setReturnValue(query, 1);
query.setParameter("myparam2", new Integer(2), Hibernate.INTEGER);
queryControl.setReturnValue(query, 1);
query.list();
queryControl.setReturnValue(list, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
queryControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
List result = ht.findByNamedQueryAndNamedParam("some query name",
new String[] {"myparam1", "myparam2"},
new Object[] {"myvalue1", new Integer(2)},
new Type[] {Hibernate.STRING, Hibernate.INTEGER});
assertTrue("Correct list", result == list);
queryControl.verify();
}
public void testFindByNamedQueryAndValueBean() throws HibernateException {
MockControl queryControl = MockControl.createControl(Query.class);
Query query = (Query) queryControl.getMock();
TestBean tb = new TestBean();
List list = new ArrayList();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.getNamedQuery("some query name");
sessionControl.setReturnValue(query, 1);
query.setProperties(tb);
queryControl.setReturnValue(query, 1);
query.list();
queryControl.setReturnValue(list, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
queryControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
List result = ht.findByNamedQueryAndValueBean("some query name", tb);
assertTrue("Correct list", result == list);
queryControl.verify();
}
public void testFindWithCacheable() throws HibernateException {
MockControl queryControl = MockControl.createControl(Query.class);
Query query = (Query) queryControl.getMock();
List list = new ArrayList();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createQuery("some query string");
sessionControl.setReturnValue(query, 1);
query.setCacheable(true);
queryControl.setReturnValue(query, 1);
query.list();
queryControl.setReturnValue(list, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
queryControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.setCacheQueries(true);
List result = ht.find("some query string");
assertTrue("Correct list", result == list);
sfControl.verify();
}
public void testFindByNamedQueryWithCacheable() throws HibernateException {
MockControl queryControl = MockControl.createControl(Query.class);
Query query = (Query) queryControl.getMock();
List list = new ArrayList();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.getNamedQuery("some query name");
sessionControl.setReturnValue(query, 1);
query.setCacheable(true);
queryControl.setReturnValue(query, 1);
query.list();
queryControl.setReturnValue(list, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
queryControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.setCacheQueries(true);
List result = ht.findByNamedQuery("some query name");
assertTrue("Correct list", result == list);
queryControl.verify();
}
public void testIterate() throws HibernateException {
MockControl queryControl = MockControl.createControl(Query.class);
Query query = (Query) queryControl.getMock();
Iterator it = Collections.EMPTY_LIST.iterator();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createQuery("some query string");
sessionControl.setReturnValue(query, 1);
query.iterate();
queryControl.setReturnValue(it, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
queryControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
Iterator result = ht.iterate("some query string");
assertTrue("Correct list", result == it);
queryControl.verify();
}
public void testIterateWithParameterAndType() throws HibernateException {
MockControl queryControl = MockControl.createControl(Query.class);
Query query = (Query) queryControl.getMock();
Iterator it = Collections.EMPTY_LIST.iterator();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createQuery("some query string");
sessionControl.setReturnValue(query, 1);
query.setParameter(0, "myvalue", Hibernate.STRING);
queryControl.setReturnValue(query, 1);
query.iterate();
queryControl.setReturnValue(it, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
queryControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
Iterator result = ht.iterate("some query string", "myvalue", Hibernate.STRING);
assertTrue("Correct list", result == it);
queryControl.verify();
}
public void testIterateWithParametersAndTypes() throws HibernateException {
MockControl queryControl = MockControl.createControl(Query.class);
Query query = (Query) queryControl.getMock();
Iterator it = Collections.EMPTY_LIST.iterator();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createQuery("some query string");
sessionControl.setReturnValue(query, 1);
query.setParameter(0, "myvalue1", Hibernate.STRING);
queryControl.setReturnValue(query, 1);
query.setParameter(1, new Integer(2), Hibernate.INTEGER);
queryControl.setReturnValue(query, 1);
query.iterate();
queryControl.setReturnValue(it, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
queryControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
Iterator result = ht.iterate("some query string",
new Object[] {"myvalue1", new Integer(2)},
new Type[] {Hibernate.STRING, Hibernate.INTEGER});
assertTrue("Correct list", result == it);
sfControl.verify();
}
public void testDeleteWithQuery() throws HibernateException {
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.getFlushMode();
sessionControl.setReturnValue(FlushMode.AUTO);
session.delete("from example.Example");
sessionControl.setReturnValue(2);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
assertEquals(2, ht.delete("from example.Example"));
}
public void testDeleteWithQueryAndValue() throws HibernateException {
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.getFlushMode();
sessionControl.setReturnValue(FlushMode.AUTO);
session.delete("from example.Example", "test", Hibernate.STRING);
sessionControl.setReturnValue(2);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
assertEquals(2, ht.delete("from example.Example", "test", Hibernate.STRING));
}
public void testDeleteWithQueryAndValues() throws HibernateException {
Object[] values = new Object[]{"test1", "test2"};
Type[] types = new Type[] {Hibernate.STRING, Hibernate.STRING};
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.getFlushMode();
sessionControl.setReturnValue(FlushMode.AUTO);
session.delete("from example.Example", values, types);
sessionControl.setReturnValue(2);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
assertEquals(2, ht.delete("from example.Example", values, types));
}
public void testExceptions() throws HibernateException {
final SQLException sqlex = new SQLException("argh", "27");
try {
createTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
throw new JDBCException(sqlex);
}
});
fail("Should have thrown DataIntegrityViolationException");
}
catch (DataIntegrityViolationException ex) {
// expected
assertEquals(sqlex, ex.getCause());
}
try {
createTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
throw new ObjectDeletedException("msg", "id", TestBean.class);
}
});
fail("Should have thrown HibernateObjectRetrievalFailureException");
}
catch (HibernateObjectRetrievalFailureException ex) {
// expected
}
final WrongClassException wcex = new WrongClassException("msg", "id", TestBean.class);
try {
createTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
throw wcex;
}
});
fail("Should have thrown HibernateObjectRetrievalFailureException");
}
catch (HibernateObjectRetrievalFailureException ex) {
// expected
assertEquals(TestBean.class, ex.getPersistentClass());
assertEquals("id", ex.getIdentifier());
assertEquals(wcex, ex.getCause());
}
final StaleObjectStateException sosex = new StaleObjectStateException(TestBean.class, "id");
try {
createTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
throw sosex;
}
});
fail("Should have thrown HibernateOptimisticLockingFailureException");
}
catch (HibernateOptimisticLockingFailureException ex) {
// expected
assertEquals(TestBean.class, ex.getPersistentClass());
assertEquals("id", ex.getIdentifier());
assertEquals(sosex, ex.getCause());
}
final QueryException qex = new QueryException("msg");
qex.setQueryString("query");
try {
createTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
throw qex;
}
});
fail("Should have thrown InvalidDataAccessResourceUsageException");
}
catch (HibernateQueryException ex) {
// expected
assertEquals(qex, ex.getCause());
assertEquals("query", ex.getQueryString());
}
try {
createTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
throw new PersistentObjectException("");
}
});
fail("Should have thrown InvalidDataAccessApiUsageException");
}
catch (InvalidDataAccessApiUsageException ex) {
// expected
}
try {
createTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
throw new TransientObjectException("");
}
});
fail("Should have thrown InvalidDataAccessApiUsageException");
}
catch (InvalidDataAccessApiUsageException ex) {
// expected
}
final HibernateException hex = new HibernateException("msg");
try {
createTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
throw hex;
}
});
fail("Should have thrown HibernateSystemException");
}
catch (HibernateSystemException ex) {
// expected
assertEquals(hex, ex.getCause());
}
}
private HibernateTemplate createTemplate() throws HibernateException {
sfControl.reset();
sessionControl.reset();
sf.openSession();
sfControl.setReturnValue(session);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
return new HibernateTemplate(sf);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -