]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.hibernate/src/test/java/org/argeo/slc/hibernate/process/SlcExecutionHibernateTest.java
Introduce Hibernate lazy loading for SlcExecution and TestResultCollections
[gpl/argeo-slc.git] / org.argeo.slc.hibernate / src / test / java / org / argeo / slc / hibernate / process / SlcExecutionHibernateTest.java
index 0de56e62c587ecf63a0701387f7c9a318bae3074..2bbb092d51107a0e6d6e1ba536be49975527bbf3 100644 (file)
@@ -1,14 +1,18 @@
 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
@@ -20,12 +24,7 @@ public class SlcExecutionHibernateTest extends AbstractSpringTestCase {
                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
@@ -39,31 +38,46 @@ public class SlcExecutionHibernateTest extends AbstractSpringTestCase {
                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