]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.lib.detached/src/test/java/org/argeo/slc/lib/detached/DetachedCastorTest.java
Introduce org.argeo.slc.lib.detached
[gpl/argeo-slc.git] / runtime / org.argeo.slc.lib.detached / src / test / java / org / argeo / slc / lib / detached / DetachedCastorTest.java
diff --git a/runtime/org.argeo.slc.lib.detached/src/test/java/org/argeo/slc/lib/detached/DetachedCastorTest.java b/runtime/org.argeo.slc.lib.detached/src/test/java/org/argeo/slc/lib/detached/DetachedCastorTest.java
new file mode 100644 (file)
index 0000000..0425ce0
--- /dev/null
@@ -0,0 +1,142 @@
+package org.argeo.slc.lib.detached;
+
+import java.util.Enumeration;
+import java.util.Properties;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.argeo.slc.detached.DetachedAnswer;
+import org.argeo.slc.detached.DetachedRequest;
+import org.argeo.slc.detached.DetachedXmlConverter;
+import org.argeo.slc.detached.DetachedXmlConverterCompat;
+import org.argeo.slc.unit.AbstractSpringTestCase;
+import org.argeo.slc.unit.UnitXmlUtils;
+import org.springframework.xml.transform.StringResult;
+import org.springframework.xml.transform.StringSource;
+import org.springframework.xml.validation.XmlValidator;
+
+public class DetachedCastorTest extends AbstractSpringTestCase {
+       private final Log log = LogFactory.getLog(getClass());
+
+       private DetachedXmlConverter converter = null;
+       private XmlValidator validator = null;
+       private DetachedXmlConverter converterCompat = null;
+
+       public void setUp() {
+               converter = getBean("slcDefault.detached.xmlConverterCastor");
+               validator = getBean("slcDefault.detached.xml.xsdValidator");
+               converterCompat = new DetachedXmlConverterCompat();
+       }
+
+       public void testRequest() throws Exception {
+               DetachedRequest request = createTestRequest();
+
+               StringResult result = new StringResult();
+               converter.marshallCommunication(request, result);
+               String xml = result.toString();
+               log.debug(xml + "\n");
+
+               UnitXmlUtils.assertXmlValidation(validator, new StringSource(xml));
+               DetachedRequest requestUnm = (DetachedRequest) converter
+                               .unmarshallCommunication(new StringSource(xml));
+               assertDetachedRequest(request, requestUnm);
+       }
+
+       public void testRequestCompat() throws Exception {
+               DetachedRequest request = createTestRequest();
+
+               StringResult result = new StringResult();
+               converter.marshallCommunication(request, result);
+               String xml = result.toString();
+               log.debug(xml + "\n");
+
+               UnitXmlUtils.assertXmlValidation(validator, new StringSource(xml));
+               DetachedRequest requestUnm = (DetachedRequest) converterCompat
+                               .unmarshallCommunication(new StringSource(xml));
+               assertDetachedRequest(request, requestUnm);
+       }
+
+       public void testAnswer() throws Exception {
+               DetachedAnswer answer = createTestAnswer();
+               StringResult result = new StringResult();
+               converter.marshallCommunication(answer, result);
+               String xml = result.toString();
+               log.debug(xml + "\n");
+
+               UnitXmlUtils.assertXmlValidation(validator, new StringSource(xml));
+               DetachedAnswer answerUnm = (DetachedAnswer) converter
+                               .unmarshallCommunication(new StringSource(xml));
+               assertDetachedAnswer(answer, answerUnm);
+       }
+
+       public void testAnswerCompat() throws Exception {
+               DetachedAnswer answer = createTestAnswer();
+               StringResult result = new StringResult();
+               converterCompat.marshallCommunication(answer, result);
+               String xml = result.toString();
+               log.debug(xml + "\n");
+
+               UnitXmlUtils.assertXmlValidation(validator, new StringSource(xml));
+               DetachedAnswer answerUnm = (DetachedAnswer) converter
+                               .unmarshallCommunication(new StringSource(xml));
+               assertDetachedAnswer(answer, answerUnm);
+       }
+
+       public static DetachedRequest createTestRequest() {
+               DetachedRequest request = new DetachedRequest();
+               request.setUuid("12345");
+               request.setPath("/root/test");
+               request.setRef("testRef");
+               Properties properties = new Properties();
+               properties.setProperty("key1", "value1");
+               properties.setProperty("key2", "value2");
+               request.setProperties(properties);
+               return request;
+       }
+
+       public static DetachedAnswer createTestAnswer() {
+               DetachedAnswer answer = new DetachedAnswer();
+               answer.setUuid("12345");
+               answer.setStatus(DetachedAnswer.PROCESSED);
+               answer.setLog("my log\nline break.");
+               Properties properties = new Properties();
+               properties.setProperty("key1", "value1");
+               properties.setProperty("key2", "value2");
+               answer.setProperties(properties);
+               return answer;
+       }
+
+       public static void assertDetachedRequest(DetachedRequest expected,
+                       DetachedRequest reached) {
+               assertEquals(expected.getUuid(), reached.getUuid());
+               assertEquals(expected.getPath(), reached.getPath());
+               assertEquals(expected.getRef(), reached.getRef());
+               Properties expectedProps = expected.getProperties();
+               Properties reachedProps = reached.getProperties();
+               assertEquals(expectedProps.size(), reachedProps.size());
+               Enumeration<Object> keys = expectedProps.keys();
+               while (keys.hasMoreElements()) {
+                       String key = (String) keys.nextElement();
+                       assertTrue(reachedProps.containsKey(key));
+                       assertEquals(expectedProps.getProperty(key), reachedProps
+                                       .getProperty(key));
+               }
+       }
+
+       public static void assertDetachedAnswer(DetachedAnswer expected,
+                       DetachedAnswer reached) {
+               assertEquals(expected.getUuid(), reached.getUuid());
+               assertEquals(expected.getStatus(), reached.getStatus());
+               assertEquals(expected.getLog(), reached.getLog());
+               Properties expectedProps = expected.getProperties();
+               Properties reachedProps = reached.getProperties();
+               assertEquals(expectedProps.size(), reachedProps.size());
+               Enumeration<Object> keys = expectedProps.keys();
+               while (keys.hasMoreElements()) {
+                       String key = (String) keys.nextElement();
+                       assertTrue(reachedProps.containsKey(key));
+                       assertEquals(expectedProps.getProperty(key), reachedProps
+                                       .getProperty(key));
+               }
+       }
+}