package org.argeo.slc.hibernate.test.tree;\r
\r
+import java.sql.SQLException;\r
+\r
import org.argeo.slc.core.structure.SimpleSElement;\r
import org.argeo.slc.core.structure.tree.TreeSPath;\r
import org.argeo.slc.core.structure.tree.TreeSRegistry;\r
import org.argeo.slc.unit.AbstractSpringTestCase;\r
import org.argeo.slc.unit.test.tree.TreeTestResultTestUtils;\r
import org.argeo.slc.unit.test.tree.UnitTestTreeUtil;\r
+import org.hibernate.HibernateException;\r
+import org.hibernate.LockMode;\r
+import org.hibernate.Session;\r
+import org.hibernate.SessionFactory;\r
+import org.hibernate.Transaction;\r
+import org.springframework.orm.hibernate3.HibernateCallback;\r
+import org.springframework.orm.hibernate3.HibernateTemplate;\r
\r
public class TreeTestResultDaoHibernateTest extends AbstractSpringTestCase {\r
private TreeTestResultDao testResultDao = null;\r
+ private HibernateTemplate template = null;\r
\r
@Override\r
public void setUp() {\r
- testResultDao = (TreeTestResultDao) getContext().getBean(\r
- "testResultDao");\r
+ testResultDao = getBean(TreeTestResultDao.class);\r
+ template = new HibernateTemplate(getBean(SessionFactory.class));\r
}\r
\r
public void testCreate() {\r
TreeTestResult ttrPersisted = (TreeTestResult) testResultDao\r
.getTestResult(ttr.getUuid());\r
\r
- UnitTestTreeUtil.assertTreeTestResult(ttr, ttrPersisted);\r
+ assertInHibernate(ttr, ttrPersisted);\r
}\r
\r
public void testUpdate() {\r
.createCompleteTreeTestResult();\r
testResultDao.create(ttr);\r
\r
- TreeTestResult ttrUpdated = (TreeTestResult) testResultDao\r
+ final TreeTestResult ttrUpdated = (TreeTestResult) testResultDao\r
.getTestResult(ttr.getUuid());\r
\r
// Modifying ttrUpdated\r
*/\r
\r
String pathStr = "/test";\r
- TreeSPath path = TreeSPath.parseToCreatePath(pathStr);\r
+ final TreeSPath path = new TreeSPath(pathStr);\r
\r
- TreeSRegistry registry = new TreeSRegistry();\r
+ final TreeSRegistry registry = new TreeSRegistry();\r
SimpleSElement elem = new SimpleSElement("Unit Test");\r
elem.getTags().put("myTag", "myTagValue");\r
registry.register(path, elem);\r
\r
- ttrUpdated.notifyCurrentPath(registry, path);\r
+ template.execute(new HibernateCallback() {\r
+\r
+ public Object doInHibernate(Session session)\r
+ throws HibernateException, SQLException {\r
+ session.refresh(ttrUpdated);\r
+ ttrUpdated.notifyCurrentPath(registry, path);\r
\r
- ttrUpdated.addResultPart(TreeTestResultTestUtils\r
- .createSimpleResultPartPassed());\r
- ttrUpdated.addResultPart(TreeTestResultTestUtils\r
- .createSimpleResultPartFailed());\r
- ttrUpdated.addResultPart(TreeTestResultTestUtils\r
- .createSimpleResultPartError());\r
+ ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+ .createSimpleResultPartPassed());\r
+ ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+ .createSimpleResultPartFailed());\r
+ ttrUpdated.addResultPart(TreeTestResultTestUtils\r
+ .createSimpleResultPartError());\r
+ return null;\r
+ }\r
+ });\r
\r
testResultDao.update(ttrUpdated);\r
\r
TreeTestResult ttrRetrieved = (TreeTestResult) testResultDao\r
.getTestResult(ttr.getUuid());\r
\r
- UnitTestTreeUtil.assertTreeTestResult(ttrRetrieved, ttrUpdated);\r
+ assertInHibernate(ttrUpdated, ttrRetrieved);\r
}\r
\r
public void testMultipleUpdateScenario() throws Exception {\r
ttr.close();\r
\r
testResultDao.close(ttr.getUuid(), ttr.getCloseDate());\r
+\r
+ TreeTestResult ttrRetrieved = (TreeTestResult) testResultDao\r
+ .getTestResult(ttr.getUuid());\r
+\r
+ assertInHibernate(ttr, ttrRetrieved);\r
+\r
}\r
\r
@Override\r
return "org/argeo/slc/hibernate/applicationContext.xml";\r
}\r
\r
+ public void assertInHibernate(final TreeTestResult ttrExpected,\r
+ final TreeTestResult ttrPersisted) {\r
+ template.execute(new HibernateCallback() {\r
+ public Object doInHibernate(Session session) {\r
+ session.refresh(ttrPersisted);\r
+ UnitTestTreeUtil\r
+ .assertTreeTestResult(ttrExpected, ttrPersisted);\r
+ return null;\r
+ }\r
+\r
+ });\r
+\r
+ }\r
+\r
}\r