1 package org
.argeo
.slc
.hibernate
.process
;
3 import java
.sql
.SQLException
;
6 import org
.argeo
.slc
.core
.process
.SlcExecution
;
7 import org
.argeo
.slc
.core
.process
.SlcExecutionStep
;
8 import org
.argeo
.slc
.dao
.process
.SlcExecutionDao
;
9 import org
.argeo
.slc
.hibernate
.unit
.HibernateTestCase
;
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
;
15 public class SlcExecutionHibernateTest
extends HibernateTestCase
{
17 public void testSave() {
18 SlcExecutionDao dao
= getBean(SlcExecutionDao
.class);
20 SlcExecution slcExec
= SlcExecutionTestUtils
.createSimpleSlcExecution();
21 slcExec
.getSteps().add(new SlcExecutionStep("A log line"));
22 slcExec
.getSteps().add(new SlcExecutionStep("Two log\nlines"));
26 SlcExecution slcExecPersisted
= dao
.getSlcExecution(slcExec
.getUuid());
27 assertSlcExecution(slcExec
, slcExecPersisted
);
30 public void testModify() {
31 SlcExecutionDao dao
= getBean(SlcExecutionDao
.class);
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"));
40 // slcExecution retrieval and update
41 final SlcExecution slcExecRetrieved
= dao
.getSlcExecution(slcExec
44 getHibernateTemplate().execute(new HibernateCallback() {
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";
54 slcExecRetrieved
.getSteps().get(0)
55 .setLogLines(logLineListStep0
);
56 slcExecRetrieved
.getSteps().add(
57 new SlcExecutionStep("Three \n log \n lines"));
62 dao
.update(slcExecRetrieved
);
64 // updated slcExecution retrieval and comparison
65 SlcExecution slcExecUpdated
= dao
.getSlcExecution(slcExec
.getUuid());
67 assertSlcExecution(slcExecRetrieved
, slcExecUpdated
);
70 public void assertSlcExecution(final SlcExecution expected
,
71 final SlcExecution persisted
) {
72 getHibernateTemplate().execute(new HibernateCallback() {
74 public Object
doInHibernate(Session session
)
75 throws HibernateException
, SQLException
{
76 session
.refresh(persisted
);
77 SlcExecutionTestUtils
.assertSlcExecution(expected
, persisted
);
84 protected String
getApplicationContextLocation() {
85 return "org/argeo/slc/hibernate/applicationContext.xml";