]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.castor/src/test/java/org/argeo/slc/castor/SlcExecutionCastorTest.java
Communicate with the agent via JMS
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.castor / src / test / java / org / argeo / slc / castor / SlcExecutionCastorTest.java
1 package org.argeo.slc.castor;
2
3 import java.text.SimpleDateFormat;
4 import java.util.ArrayList;
5 import java.util.List;
6 import java.util.UUID;
7
8 import org.argeo.slc.execution.ExecutionFlowDescriptor;
9 import org.argeo.slc.msg.process.SlcExecutionRequest;
10 import org.argeo.slc.msg.process.SlcExecutionStepsRequest;
11 import org.argeo.slc.process.RealizedFlow;
12 import org.argeo.slc.process.SlcExecution;
13 import org.argeo.slc.process.SlcExecutionStep;
14 import org.argeo.slc.unit.execution.ExecutionFlowDescriptorTestUtils;
15 import org.argeo.slc.unit.process.SlcExecutionTestUtils;
16 import org.springframework.xml.transform.StringResult;
17
18 public class SlcExecutionCastorTest extends AbstractCastorTestCase {
19 public void testMarshalling() throws Exception {
20 SlcExecution slcExec = SlcExecutionTestUtils.createSimpleSlcExecution();
21
22 SlcExecutionRequest msgSave = new SlcExecutionRequest();
23 msgSave.setSlcExecution(slcExec);
24
25 StringResult msgSaveXml = marshalAndValidate(msgSave);
26
27 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
28 SlcExecutionStep step0 = new SlcExecutionStep();
29 step0.setUuid(UUID.randomUUID().toString());
30 step0.setBegin(sdf.parse("2008-04-17 18:21"));
31 step0.setType("LOG");
32 step0.addLog("A log message\nand another line");
33
34 SlcExecutionStep step1 = new SlcExecutionStep();
35 step1.setUuid(UUID.randomUUID().toString());
36 step1.setBegin(sdf.parse("2008-04-17 18:25"));
37 step1.setType("LOG");
38 step1.addLog("A nother log message");
39
40 SlcExecutionStepsRequest msgNotif = new SlcExecutionStepsRequest();
41 msgNotif.addStep(step0);
42 msgNotif.addStep(step1);
43 msgNotif.setSlcExecutionUuid(slcExec.getUuid());
44
45 StringResult msgNotifXml = marshalAndValidate(msgNotif);
46
47 SlcExecutionRequest msgSaveUnm = unmarshal(msgSaveXml);
48 assertNotNull(msgSaveUnm);
49 SlcExecutionTestUtils.assertSlcExecution(slcExec, msgSaveUnm
50 .getSlcExecution());
51
52 SlcExecutionStepsRequest msgNotifUnm = unmarshal(msgNotifXml);
53 assertNotNull(msgNotifUnm);
54 assertEquals(slcExec.getUuid(), msgNotifUnm.getSlcExecutionUuid());
55 assertEquals(2, msgNotifUnm.getSteps().size());
56 SlcExecutionTestUtils.assertSlcExecutionStep(step0, msgNotifUnm
57 .getSteps().get(0));
58 SlcExecutionTestUtils.assertSlcExecutionStep(step1, msgNotifUnm
59 .getSteps().get(1));
60
61 SlcExecution slcExecUnm = msgSaveUnm.getSlcExecution();
62 slcExecUnm.getSteps().addAll(msgNotifUnm.getSteps());
63
64 SlcExecutionRequest msgUpdate = new SlcExecutionRequest();
65 msgUpdate.setSlcExecution(slcExecUnm);
66 StringResult msgUpdateXml = marshalAndValidate(msgUpdate);
67
68 SlcExecutionRequest msgUpdateUnm = unmarshal(msgUpdateXml);
69 assertNotNull(msgUpdateUnm);
70 }
71
72 public void testMarshUnmarsh() throws Exception {
73 SlcExecution slcExec = SlcExecutionTestUtils.createSimpleSlcExecution();
74 List<RealizedFlow> realizedFlows = new ArrayList<RealizedFlow>();
75 RealizedFlow realizedFlow = new RealizedFlow();
76 ExecutionFlowDescriptor flowDescriptor = ExecutionFlowDescriptorTestUtils
77 .createSimpleExecutionFlowDescriptor();
78 realizedFlow.setModuleName("test.module");
79 realizedFlow.setModuleVersion("1.0.0");
80 realizedFlow.setFlowDescriptor(flowDescriptor);
81 realizedFlow.setExecutionSpec(flowDescriptor.getExecutionSpec());
82 realizedFlows.add(realizedFlow);
83 slcExec.setRealizedFlows(realizedFlows);
84
85 marshUnmarsh(slcExec, false);
86 }
87 }