]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.lib.detached/src/test/java/org/argeo/slc/lib/detached/DetachedCastorTest.java
Update headers
[gpl/argeo-slc.git] / runtime / org.argeo.slc.lib.detached / src / test / java / org / argeo / slc / lib / detached / DetachedCastorTest.java
1 /*
2 * Copyright (C) 2007-2012 Mathieu Baudier
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.argeo.slc.lib.detached;
17
18 import java.util.Enumeration;
19 import java.util.Properties;
20
21 import org.apache.commons.logging.Log;
22 import org.apache.commons.logging.LogFactory;
23 import org.argeo.slc.detached.DetachedAnswer;
24 import org.argeo.slc.detached.DetachedRequest;
25 import org.argeo.slc.detached.DetachedXmlConverter;
26 import org.argeo.slc.detached.DetachedXmlConverterCompat;
27 import org.argeo.slc.unit.AbstractSpringTestCase;
28 import org.argeo.slc.unit.UnitXmlUtils;
29 import org.springframework.xml.transform.StringResult;
30 import org.springframework.xml.transform.StringSource;
31 import org.springframework.xml.validation.XmlValidator;
32
33 public class DetachedCastorTest extends AbstractSpringTestCase {
34 private final Log log = LogFactory.getLog(getClass());
35
36 private DetachedXmlConverter converter = null;
37 private XmlValidator validator = null;
38 private DetachedXmlConverter converterCompat = null;
39
40 public void setUp() {
41 converter = getBean("slcDefault.detached.xmlConverterCastor");
42 validator = getBean("slcDefault.detached.xml.xsdValidator");
43 converterCompat = new DetachedXmlConverterCompat();
44 }
45
46 public void testRequest() throws Exception {
47 DetachedRequest request = createTestRequest();
48
49 StringResult result = new StringResult();
50 converter.marshallCommunication(request, result);
51 String xml = result.toString();
52 log.debug(xml + "\n");
53
54 UnitXmlUtils.assertXmlValidation(validator, new StringSource(xml));
55 DetachedRequest requestUnm = (DetachedRequest) converter
56 .unmarshallCommunication(new StringSource(xml));
57 assertDetachedRequest(request, requestUnm);
58 }
59
60 public void testRequestCompat() throws Exception {
61 DetachedRequest request = createTestRequest();
62
63 StringResult result = new StringResult();
64 converter.marshallCommunication(request, result);
65 String xml = result.toString();
66 log.debug(xml + "\n");
67
68 UnitXmlUtils.assertXmlValidation(validator, new StringSource(xml));
69 DetachedRequest requestUnm = (DetachedRequest) converterCompat
70 .unmarshallCommunication(new StringSource(xml));
71 assertDetachedRequest(request, requestUnm);
72 }
73
74 public void testAnswer() throws Exception {
75 DetachedAnswer answer = createTestAnswer();
76 StringResult result = new StringResult();
77 converter.marshallCommunication(answer, result);
78 String xml = result.toString();
79 log.debug(xml + "\n");
80
81 UnitXmlUtils.assertXmlValidation(validator, new StringSource(xml));
82 DetachedAnswer answerUnm = (DetachedAnswer) converter
83 .unmarshallCommunication(new StringSource(xml));
84 assertDetachedAnswer(answer, answerUnm);
85 }
86
87 public void testAnswerCompat() throws Exception {
88 DetachedAnswer answer = createTestAnswer();
89 StringResult result = new StringResult();
90 converterCompat.marshallCommunication(answer, result);
91 String xml = result.toString();
92 log.debug(xml + "\n");
93
94 UnitXmlUtils.assertXmlValidation(validator, new StringSource(xml));
95 DetachedAnswer answerUnm = (DetachedAnswer) converter
96 .unmarshallCommunication(new StringSource(xml));
97 assertDetachedAnswer(answer, answerUnm);
98 }
99
100 public static DetachedRequest createTestRequest() {
101 DetachedRequest request = new DetachedRequest();
102 request.setUuid("12345");
103 request.setPath("/root/test");
104 request.setRef("testRef");
105 Properties properties = new Properties();
106 properties.setProperty("key1", "value1");
107 properties.setProperty("key2", "value2");
108 request.setProperties(properties);
109 return request;
110 }
111
112 public static DetachedAnswer createTestAnswer() {
113 DetachedAnswer answer = new DetachedAnswer();
114 answer.setUuid("12345");
115 answer.setStatus(DetachedAnswer.PROCESSED);
116 answer.setLog("my log\nline break.");
117 Properties properties = new Properties();
118 properties.setProperty("key1", "value1");
119 properties.setProperty("key2", "value2");
120 answer.setProperties(properties);
121 return answer;
122 }
123
124 public static void assertDetachedRequest(DetachedRequest expected,
125 DetachedRequest reached) {
126 assertEquals(expected.getUuid(), reached.getUuid());
127 assertEquals(expected.getPath(), reached.getPath());
128 assertEquals(expected.getRef(), reached.getRef());
129 Properties expectedProps = expected.getProperties();
130 Properties reachedProps = reached.getProperties();
131 assertEquals(expectedProps.size(), reachedProps.size());
132 Enumeration<Object> keys = expectedProps.keys();
133 while (keys.hasMoreElements()) {
134 String key = (String) keys.nextElement();
135 assertTrue(reachedProps.containsKey(key));
136 assertEquals(expectedProps.getProperty(key), reachedProps
137 .getProperty(key));
138 }
139 }
140
141 public static void assertDetachedAnswer(DetachedAnswer expected,
142 DetachedAnswer reached) {
143 assertEquals(expected.getUuid(), reached.getUuid());
144 assertEquals(expected.getStatus(), reached.getStatus());
145 assertEquals(expected.getLog(), reached.getLog());
146 Properties expectedProps = expected.getProperties();
147 Properties reachedProps = reached.getProperties();
148 assertEquals(expectedProps.size(), reachedProps.size());
149 Enumeration<Object> keys = expectedProps.keys();
150 while (keys.hasMoreElements()) {
151 String key = (String) keys.nextElement();
152 assertTrue(reachedProps.containsKey(key));
153 assertEquals(expectedProps.getProperty(key), reachedProps
154 .getProperty(key));
155 }
156 }
157 }