]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.core/src/test/java/org/argeo/slc/core/test/tree/TreeTestResultCastorTest.java
Add web service notification of results.
[gpl/argeo-slc.git] / org.argeo.slc.core / src / test / java / org / argeo / slc / core / test / tree / TreeTestResultCastorTest.java
1 package org.argeo.slc.core.test.tree;
2
3 import org.springframework.oxm.Marshaller;
4 import org.springframework.oxm.Unmarshaller;
5 import org.springframework.xml.transform.StringResult;
6 import org.springframework.xml.transform.StringSource;
7 import org.springframework.xml.validation.XmlValidator;
8
9 import org.apache.commons.logging.Log;
10 import org.apache.commons.logging.LogFactory;
11
12 import static org.argeo.slc.core.test.tree.TreeTestResultTestUtils.createCompleteTreeTestResult;
13 import static org.argeo.slc.core.test.tree.TreeTestResultTestUtils.createSimpleResultPartRequest;
14 import static org.argeo.slc.unit.UnitUtils.assertDateSec;
15
16 import org.argeo.slc.core.structure.tree.TreeSPath;
17 import org.argeo.slc.core.test.SimpleResultPart;
18 import org.argeo.slc.msg.test.tree.CloseTreeTestResultRequest;
19 import org.argeo.slc.msg.test.tree.CreateTreeTestResultRequest;
20 import org.argeo.slc.msg.test.tree.ResultPartRequest;
21 import org.argeo.slc.unit.AbstractSpringTestCase;
22 import org.argeo.slc.unit.UnitXmlUtils;
23 import org.argeo.slc.unit.test.tree.UnitTestTreeUtil;
24
25 public class TreeTestResultCastorTest extends AbstractSpringTestCase {
26 private Log log = LogFactory.getLog(getClass());
27
28 private Marshaller marshaller;
29 private Unmarshaller unmarshaller;
30
31 @Override
32 public void setUp() {
33 marshaller = getBean(Marshaller.class);
34 unmarshaller = getBean(Unmarshaller.class);
35 }
36
37 public void testMarshUnmarsh() throws Exception {
38 TreeTestResult ttr = createCompleteTreeTestResult();
39
40 StringResult xml = marshallAndValidate(ttr);
41
42 TreeTestResult ttrUnm = (TreeTestResult) unmarshaller
43 .unmarshal(new StringSource(xml.toString()));
44
45 UnitTestTreeUtil.assertTreeTestResult(ttr, ttrUnm);
46 }
47
48 public void testCreateTreeTestResultRequest() throws Exception {
49 CreateTreeTestResultRequest req = new CreateTreeTestResultRequest();
50 req.setTreeTestResult(createCompleteTreeTestResult());
51
52 StringResult xml = marshallAndValidate(req);
53
54 CreateTreeTestResultRequest reqUnm = (CreateTreeTestResultRequest) unmarshaller
55 .unmarshal(new StringSource(xml.toString()));
56
57 UnitTestTreeUtil.assertTreeTestResult(req.getTreeTestResult(), reqUnm
58 .getTreeTestResult());
59 }
60
61 public void testResultPartRequest() throws Exception {
62 TreeTestResult ttr = createCompleteTreeTestResult();
63 ResultPartRequest req = createSimpleResultPartRequest(ttr);
64
65 StringResult xml = marshallAndValidate(req);
66
67 ResultPartRequest reqUnm = (ResultPartRequest) unmarshaller
68 .unmarshal(new StringSource(xml.toString()));
69
70 UnitTestTreeUtil
71 .assertPart(req.getResultPart(), reqUnm.getResultPart());
72 }
73
74 public void testCloseTreeTestResultRequest() throws Exception {
75 TreeTestResult ttr = createCompleteTreeTestResult();
76 ttr.close();
77
78 CloseTreeTestResultRequest req = new CloseTreeTestResultRequest(ttr
79 .getUuid(), ttr.getCloseDate());
80
81 StringResult xml = marshallAndValidate(req);
82
83 CloseTreeTestResultRequest reqUnm = (CloseTreeTestResultRequest) unmarshaller
84 .unmarshal(new StringSource(xml.toString()));
85
86 assertEquals(ttr.getUuid(), reqUnm.getResultUuid());
87 assertDateSec(ttr.getCloseDate(), ttr.getCloseDate());
88 }
89
90 private StringResult marshallAndValidate(Object obj) throws Exception {
91 StringResult xml = new StringResult();
92 marshaller.marshal(obj, xml);
93
94 log.info("Marshalled ResultPart Request: " + xml);
95
96 UnitXmlUtils.assertXmlValidation(getBean(XmlValidator.class),
97 new StringSource(xml.toString()));
98 return xml;
99 }
100 }