--- /dev/null
+package org.argeo.slc.hibernate.unit;
+
+import org.argeo.slc.unit.AbstractSpringTestCase;
+import org.hibernate.SessionFactory;
+import org.springframework.orm.hibernate3.HibernateTemplate;
+
+public class HibernateTestCase extends AbstractSpringTestCase {
+ private HibernateTemplate hibernateTemplate;
+
+ public HibernateTemplate getHibernateTemplate() {
+ if (hibernateTemplate == null) {
+ hibernateTemplate = new HibernateTemplate(
+ getBean(SessionFactory.class));
+ }
+
+ return hibernateTemplate;
+ }
+
+}
-<?xml version="1.0"?>\r
+<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC\r
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"\r
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">\r
<property name="type" column="TYPE" />\r
<property name="status" column="STATUS" />\r
\r
- <list name="steps" cascade="all" lazy="false"\r
- table="SLC_EXECUTIONS_STEPS">\r
+ <list name="steps" cascade="all" table="SLC_EXECUTIONS_STEPS">\r
<key column="SLC_EXECUTION_ID" />\r
<list-index column="INDX" />\r
- <one-to-many\r
- class="org.argeo.slc.core.process.SlcExecutionStep" />\r
- </list>\r
-\r
- <map name="attributes" table="SLC_EXEC_ATTRS_MAP" cascade="all"\r
- lazy="false" sort="natural">\r
- <key column="PARENT_ID" />\r
- <map-key type="string" column="ATTR_NAME" />\r
- <element column="NAME" type="string" />\r
- </map>\r
-\r
- </class>\r
+ <one-to-many
+ class="org.argeo.slc.core.process.SlcExecutionStep" />
+ </list>
+
+ <map name="attributes" table="SLC_EXEC_ATTRS_MAP" cascade="all"
+ lazy="false" sort="natural">
+ <key column="PARENT_ID" />
+ <map-key type="string" column="ATTR_NAME" />
+ <element column="NAME" type="string" />
+ </map>
+
+ </class>
</hibernate-mapping>
\ No newline at end of file
-<?xml version="1.0"?>\r
+<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC\r
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"\r
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">\r
<hibernate-mapping package="org.argeo.slc.core.test.tree">\r
- <class name="TreeTestResultCollection"\r
- table="TREE_TEST_RESULT_COLLECTION">\r
- <id name="id" column="ID" />\r
-\r
- <set name="results" table="TTR_COLLECTION_RESULTS"\r
- sort="natural" lazy="false">\r
- <key column="PARENT_ID" />\r
- <many-to-many class="TreeTestResult" />\r
- </set>\r
- </class>\r
+ <class name="TreeTestResultCollection"
+ table="TREE_TEST_RESULT_COLLECTION">
+ <id name="id" column="ID" />
+
+ <set name="results" table="TTR_COLLECTION_RESULTS"
+ sort="natural">
+ <key column="PARENT_ID" />
+ <many-to-many class="TreeTestResult" />
+ </set>
+ </class>
</hibernate-mapping>
\ No newline at end of file
package org.argeo.slc.hibernate.process;\r
\r
+import java.sql.SQLException;\r
import java.util.List;\r
\r
import org.argeo.slc.core.process.SlcExecution;\r
import org.argeo.slc.core.process.SlcExecutionStep;\r
import org.argeo.slc.dao.process.SlcExecutionDao;\r
-import org.argeo.slc.unit.AbstractSpringTestCase;\r
+import org.argeo.slc.hibernate.unit.HibernateTestCase;\r
import org.argeo.slc.unit.process.SlcExecutionTestUtils;\r
+import org.hibernate.HibernateException;\r
+import org.hibernate.Session;\r
+import org.springframework.orm.hibernate3.HibernateCallback;\r
\r
-public class SlcExecutionHibernateTest extends AbstractSpringTestCase {\r
+public class SlcExecutionHibernateTest extends HibernateTestCase {\r
\r
public void testSave() {\r
SlcExecutionDao dao = getBean(SlcExecutionDao.class);\r
dao.create(slcExec);\r
\r
SlcExecution slcExecPersisted = dao.getSlcExecution(slcExec.getUuid());\r
- SlcExecutionTestUtils.assertSlcExecution(slcExec, slcExecPersisted);\r
- assertEquals(2, slcExecPersisted.getSteps().size());\r
- SlcExecutionTestUtils.assertSlcExecutionStep(slcExec.getSteps().get(0),\r
- slcExecPersisted.getSteps().get(0));\r
- SlcExecutionTestUtils.assertSlcExecutionStep(slcExec.getSteps().get(1),\r
- slcExecPersisted.getSteps().get(1));\r
+ assertSlcExecution(slcExec, slcExecPersisted);\r
}\r
\r
public void testModify() {\r
dao.create(slcExec);\r
\r
// slcExecution retrieval and update\r
- SlcExecution slcExecRetrieved = dao.getSlcExecution(slcExec.getUuid());\r
-\r
- List<String> logLineListStep0 = slcExecRetrieved.getSteps().get(0)\r
- .getLogLines();\r
- for (String logLine : logLineListStep0)\r
- logLine = logLine + "appended Log text";\r
-\r
- slcExecRetrieved.getSteps().get(0).setLogLines(logLineListStep0);\r
- slcExecRetrieved.getSteps().add(\r
- new SlcExecutionStep("LOG", "Three \n log \n lines"));\r
+ final SlcExecution slcExecRetrieved = dao.getSlcExecution(slcExec\r
+ .getUuid());\r
+\r
+ getHibernateTemplate().execute(new HibernateCallback() {\r
+\r
+ public Object doInHibernate(Session session)\r
+ throws HibernateException, SQLException {\r
+ session.refresh(slcExecRetrieved);\r
+ List<String> logLineListStep0 = slcExecRetrieved.getSteps()\r
+ .get(0).getLogLines();\r
+ for (String logLine : logLineListStep0)\r
+ logLine = logLine + "appended Log text";\r
+\r
+ slcExecRetrieved.getSteps().get(0)\r
+ .setLogLines(logLineListStep0);\r
+ slcExecRetrieved.getSteps().add(\r
+ new SlcExecutionStep("LOG", "Three \n log \n lines"));\r
+ return null;\r
+ }\r
+ });\r
\r
dao.update(slcExecRetrieved);\r
\r
// updated slcExecution retrieval and comparison\r
SlcExecution slcExecUpdated = dao.getSlcExecution(slcExec.getUuid());\r
\r
- SlcExecutionTestUtils.assertSlcExecution(slcExecRetrieved,\r
- slcExecUpdated);\r
- assertEquals(3, slcExecUpdated.getSteps().size());\r
- SlcExecutionTestUtils.assertSlcExecutionStep(slcExecUpdated.getSteps()\r
- .get(0), slcExecRetrieved.getSteps().get(0));\r
- SlcExecutionTestUtils.assertSlcExecutionStep(slcExecUpdated.getSteps()\r
- .get(1), slcExecRetrieved.getSteps().get(1));\r
- SlcExecutionTestUtils.assertSlcExecutionStep(slcExecUpdated.getSteps()\r
- .get(2), slcExecRetrieved.getSteps().get(2));\r
+ assertSlcExecution(slcExecRetrieved, slcExecUpdated);\r
+ }\r
+\r
+ public void assertSlcExecution(final SlcExecution expected,\r
+ final SlcExecution persisted) {\r
+ getHibernateTemplate().execute(new HibernateCallback() {\r
+\r
+ public Object doInHibernate(Session session)\r
+ throws HibernateException, SQLException {\r
+ session.refresh(persisted);\r
+ SlcExecutionTestUtils.assertSlcExecution(expected, persisted);\r
+ return null;\r
+ }\r
+ });\r
}\r
\r
@Override\r
import org.argeo.slc.core.structure.tree.TreeSPath;\r
import org.argeo.slc.core.test.tree.TreeTestResult;\r
import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
-import org.argeo.slc.unit.AbstractSpringTestCase;\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.springframework.oxm.Marshaller;\r
import org.springframework.oxm.Unmarshaller;\r
import org.springframework.xml.transform.StringResult;\r
import org.springframework.xml.transform.StringSource;\r
\r
-public class CastorTestResultDaoHibernateTest extends AbstractSpringTestCase {\r
+public class CastorTestResultDaoHibernateTest extends HibernateTestCase {\r
\r
public void testUnmarshallAndCreate() throws Exception {\r
TreeTestResult ttr = TreeTestResultTestUtils\r
ttrDao.create(ttrUnm);\r
TreeTestResult ttrPersist = ttrDao.getTestResult(ttr.getUuid());\r
\r
- UnitTestTreeUtil.assertTreeTestResult(ttr, ttrPersist);\r
+ TreeTestResultDaoHibernateTest.assertInHibernate(\r
+ getHibernateTemplate(), ttr, ttrPersist);\r
}\r
\r
@Override\r
package org.argeo.slc.hibernate.test.tree;\r
\r
+import java.sql.SQLException;\r
+\r
import org.argeo.slc.core.test.tree.TreeTestResult;\r
import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
-import org.argeo.slc.unit.AbstractSpringTestCase;\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
\r
-public class TreeTestResultCollectionDaoHibernateTest extends\r
- AbstractSpringTestCase {\r
+public class TreeTestResultCollectionDaoHibernateTest extends HibernateTestCase {\r
\r
public void testScenario() {\r
TreeTestResultDao ttrDao = getBean(TreeTestResultDao.class);\r
ttrc.getResults().add(ttr1);\r
ttrcDao.update(ttrc);\r
\r
- TreeTestResult ttr2 = TreeTestResultTestUtils\r
+ final TreeTestResult ttr2 = TreeTestResultTestUtils\r
.createCompleteTreeTestResult();\r
ttrDao.create(ttr2);\r
\r
ttrc.getResults().remove(ttr1);\r
ttrcDao.update(ttrc);\r
\r
- TreeTestResultCollection ttrcPersist = ttrcDao\r
+ final TreeTestResultCollection ttrcPersist = ttrcDao\r
.getTestResultCollection(ttrcName);\r
- assertEquals(1, ttrcPersist.getResults().size());\r
- UnitTestTreeUtil.assertTreeTestResult(ttr2, ttrcPersist.getResults()\r
- .iterator().next());\r
+\r
+ getHibernateTemplate().execute(new HibernateCallback() {\r
+\r
+ public Object doInHibernate(Session session)\r
+ throws HibernateException, SQLException {\r
+ session.refresh(ttrcPersist);\r
+ assertEquals(1, ttrcPersist.getResults().size());\r
+ UnitTestTreeUtil.assertTreeTestResult(ttr2, ttrcPersist\r
+ .getResults().iterator().next());\r
+ return null;\r
+ }\r
+ });\r
}\r
\r
@Override\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.unit.AbstractSpringTestCase;\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.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
+public class TreeTestResultDaoHibernateTest extends HibernateTestCase {\r
private TreeTestResultDao testResultDao = null;\r
- private HibernateTemplate template = null;\r
\r
@Override\r
public void setUp() {\r
testResultDao = getBean(TreeTestResultDao.class);\r
- template = new HibernateTemplate(getBean(SessionFactory.class));\r
}\r
\r
public void testCreate() {\r
elem.getTags().put("myTag", "myTagValue");\r
registry.register(path, elem);\r
\r
- template.execute(new HibernateCallback() {\r
+ getHibernateTemplate().execute(new HibernateCallback() {\r
\r
public Object doInHibernate(Session session)\r
throws HibernateException, SQLException {\r
return "org/argeo/slc/hibernate/applicationContext.xml";\r
}\r
\r
- public void assertInHibernate(final TreeTestResult ttrExpected,\r
- final TreeTestResult ttrPersisted) {\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
\r
}\r
\r
+ public void assertInHibernate(final TreeTestResult ttrExpected,\r
+ final TreeTestResult ttrPersisted) {\r
+ assertInHibernate(getHibernateTemplate(), ttrExpected, ttrPersisted);\r
+ }\r
+\r
}\r