+++ /dev/null
-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.core.test.SimpleResultPart;\r
-import org.argeo.slc.core.test.TestStatus;\r
-import org.argeo.slc.core.test.tree.TreeTestResult;\r
-import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
-import org.argeo.slc.hibernate.unit.HibernateTestCase;\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.Session;\r
-import org.springframework.orm.hibernate3.HibernateCallback;\r
-import org.springframework.orm.hibernate3.HibernateTemplate;\r
-\r
-public class TreeTestResultDaoHibernateTest extends HibernateTestCase {\r
- private TreeTestResultDao testResultDao = null;\r
-\r
- @Override\r
- public void setUp() {\r
- testResultDao = getBean(TreeTestResultDao.class);\r
- }\r
-\r
- public void testCreate() {\r
-\r
- TreeTestResult ttr = TreeTestResultTestUtils\r
- .createCompleteTreeTestResult();\r
- testResultDao.create(ttr);\r
-\r
- TreeTestResult ttrPersisted = (TreeTestResult) testResultDao\r
- .getTestResult(ttr.getUuid());\r
-\r
- assertInHibernate(ttr, ttrPersisted);\r
- }\r
-\r
- public void testUpdate() {\r
- TreeTestResult ttr = TreeTestResultTestUtils\r
- .createCompleteTreeTestResult();\r
- testResultDao.create(ttr);\r
-\r
- final TreeTestResult ttrUpdated = (TreeTestResult) testResultDao\r
- .getTestResult(ttr.getUuid());\r
-\r
- // Modifying ttrUpdated\r
-\r
- /**\r
- * this closeDate update commented because the assertTreeTestResult will\r
- * find a unexpected discrepancy in the date.\r
- * ttrUpdated.setCloseDate(new Date());\r
- */\r
-\r
- String pathStr = "/test";\r
- final TreeSPath path = new TreeSPath(pathStr);\r
-\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
- getHibernateTemplate().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
- return null;\r
- }\r
- });\r
-\r
- testResultDao.update(ttrUpdated);\r
-\r
- // comparison of ttrUpdated and ttrRetrieved\r
- TreeTestResult ttrRetrieved = (TreeTestResult) testResultDao\r
- .getTestResult(ttr.getUuid());\r
-\r
- assertInHibernate(ttrUpdated, ttrRetrieved);\r
- }\r
-\r
- public void testMultipleUpdateScenario() throws Exception {\r
- TreeSRegistry registry = new TreeSRegistry();\r
-\r
- TreeSPath path = new TreeSPath("/root/test");\r
- SimpleSElement elem = new SimpleSElement("Unit Test");\r
- elem.getTags().put("myTag", "myTagValue");\r
- registry.register(path, elem);\r
-\r
- TreeTestResult ttr = TreeTestResultTestUtils\r
- .createSimpleTreeTestResult();\r
- ttr.notifyCurrentPath(registry, path);\r
- ttr\r
- .addResultPart(new SimpleResultPart(TestStatus.PASSED,\r
- "First test"));\r
-\r
- testResultDao.create(ttr);\r
-\r
- path = new TreeSPath("/root/test2/subtest");\r
- elem = new SimpleSElement("Sub Test");\r
- elem.getTags().put("myTag", "myTagValue");\r
- registry.register(path, elem);\r
-\r
- ttr.notifyCurrentPath(registry, path);\r
- ttr\r
- .addResultPart(new SimpleResultPart(TestStatus.PASSED,\r
- "Second test"));\r
-\r
- testResultDao.update(ttr);\r
-\r
- ttr.notifyCurrentPath(registry, path);\r
- ttr.addResultPart(new SimpleResultPart(TestStatus.PASSED,\r
- "Third test with same path"));\r
-\r
- testResultDao.update(ttr);\r
-\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
- protected String getApplicationContextLocation() {\r
- return "org/argeo/slc/hibernate/applicationContext.xml";\r
- }\r
-\r
- public static void assertInHibernate(HibernateTemplate template,\r
- final TreeTestResult ttrExpected, 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
- public void assertInHibernate(final TreeTestResult ttrExpected,\r
- final TreeTestResult ttrPersisted) {\r
- assertInHibernate(getHibernateTemplate(), ttrExpected, ttrPersisted);\r
- }\r
-\r
-}\r