]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.hibernate/src/test/java/org/argeo/slc/hibernate/process/SlcExecutionHibernateTest.java
e54965d302227f67c9418d14becd94bcb8c3a9be
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.hibernate / src / test / java / org / argeo / slc / hibernate / process / SlcExecutionHibernateTest.java
1 package org.argeo.slc.hibernate.process;
2
3 import java.sql.SQLException;
4 import java.util.List;
5
6 import org.argeo.slc.dao.process.SlcExecutionDao;
7 import org.argeo.slc.hibernate.unit.HibernateTestCase;
8 import org.argeo.slc.process.SlcExecution;
9 import org.argeo.slc.process.SlcExecutionStep;
10 import org.argeo.slc.unit.process.SlcExecutionTestUtils;
11 import org.hibernate.HibernateException;
12 import org.hibernate.Session;
13 import org.springframework.orm.hibernate3.HibernateCallback;
14
15 public class SlcExecutionHibernateTest extends HibernateTestCase {
16
17 public void testSave() {
18 SlcExecutionDao dao = getBean(SlcExecutionDao.class);
19
20 SlcExecution slcExec = SlcExecutionTestUtils.createSimpleSlcExecution();
21 slcExec.getSteps().add(new SlcExecutionStep("A log line"));
22 slcExec.getSteps().add(new SlcExecutionStep("Two log\nlines"));
23
24 dao.create(slcExec);
25
26 SlcExecution slcExecPersisted = dao.getSlcExecution(slcExec.getUuid());
27 assertSlcExecution(slcExec, slcExecPersisted);
28 }
29
30 public void testModify() {
31 SlcExecutionDao dao = getBean(SlcExecutionDao.class);
32
33 // slcExecution Creation
34 SlcExecution slcExec = SlcExecutionTestUtils.createSimpleSlcExecution();
35 slcExec.getSteps().add(new SlcExecutionStep("A log line"));
36 slcExec.getSteps().add(new SlcExecutionStep("Two log\nlines"));
37
38 dao.create(slcExec);
39
40 // slcExecution retrieval and update
41 final SlcExecution slcExecRetrieved = dao.getSlcExecution(slcExec
42 .getUuid());
43
44 getHibernateTemplate().execute(new HibernateCallback() {
45
46 public Object doInHibernate(Session session)
47 throws HibernateException, SQLException {
48 session.refresh(slcExecRetrieved);
49 List<String> logLineListStep0 = slcExecRetrieved.getSteps()
50 .get(0).getLogLines();
51 for (String logLine : logLineListStep0)
52 logLine = logLine + "appended Log text";
53
54 slcExecRetrieved.getSteps().get(0)
55 .setLogLines(logLineListStep0);
56 slcExecRetrieved.getSteps().add(
57 new SlcExecutionStep("Three \n log \n lines"));
58 return null;
59 }
60 });
61
62 dao.update(slcExecRetrieved);
63
64 // updated slcExecution retrieval and comparison
65 SlcExecution slcExecUpdated = dao.getSlcExecution(slcExec.getUuid());
66
67 assertSlcExecution(slcExecRetrieved, slcExecUpdated);
68 }
69
70 public void assertSlcExecution(final SlcExecution expected,
71 final SlcExecution persisted) {
72 getHibernateTemplate().execute(new HibernateCallback() {
73
74 public Object doInHibernate(Session session)
75 throws HibernateException, SQLException {
76 session.refresh(persisted);
77 SlcExecutionTestUtils.assertSlcExecution(expected, persisted);
78 return null;
79 }
80 });
81 }
82
83 @Override
84 protected String getApplicationContextLocation() {
85 return "org/argeo/slc/hibernate/applicationContext.xml";
86 }
87
88 }