]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/test/java/org/argeo/slc/core/process/SlcExecutionCastorTest.java
INtroduce tree test result web service (not working yet)
[gpl/argeo-slc.git] / org.argeo.slc.core / src / test / java / org / argeo / slc / core / process / SlcExecutionCastorTest.java
index 6405ca7bba7daf25c792567a2e40437b40d0fdf1..062fbb003e163d9d559b12f4d9749b264dbf073a 100644 (file)
@@ -1,6 +1,7 @@
 package org.argeo.slc.core.process;\r
 \r
 import java.io.IOException;\r
+import java.io.InputStream;\r
 import java.io.StringReader;\r
 import java.io.StringWriter;\r
 import java.text.SimpleDateFormat;\r
@@ -15,17 +16,28 @@ import org.apache.commons.logging.LogFactory;
 import org.argeo.slc.msg.process.SlcExecutionRequest;\r
 import org.argeo.slc.msg.process.SlcExecutionStepsRequest;\r
 import org.argeo.slc.unit.AbstractSpringTestCase;\r
+import org.argeo.slc.unit.UnitXmlUtils;\r
+\r
 import org.springframework.oxm.Marshaller;\r
 import org.springframework.oxm.Unmarshaller;\r
+import org.springframework.xml.transform.StringResult;\r
+import org.springframework.xml.transform.StringSource;\r
+import org.springframework.xml.xsd.XsdSchema;\r
 \r
 public class SlcExecutionCastorTest extends AbstractSpringTestCase {\r
        private Log log = LogFactory.getLog(getClass());\r
 \r
-       public void testMarshalling() throws Exception {\r
-               Marshaller marshaller = getBean("marshaller");\r
-               Unmarshaller unmarshaller = getBean("marshaller");\r
+       private Marshaller marshaller;\r
+       private Unmarshaller unmarshaller;\r
 \r
-               SlcExecution slcExec = createSimpleSlcExecution();\r
+       @Override\r
+       public void setUp() {\r
+               marshaller = getBean("marshaller");\r
+               unmarshaller = getBean("marshaller");\r
+       }\r
+\r
+       public void testMarshalling() throws Exception {\r
+               SlcExecution slcExec = SlcExecutionTestUtils.createSimpleSlcExecution();\r
 \r
                SlcExecutionRequest msgSave = new SlcExecutionRequest();\r
                msgSave.setSlcExecution(slcExec);\r
@@ -34,11 +46,13 @@ public class SlcExecutionCastorTest extends AbstractSpringTestCase {
 \r
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");\r
                SlcExecutionStep step0 = new SlcExecutionStep();\r
+               step0.setUuid(UUID.randomUUID().toString());\r
                step0.setBegin(sdf.parse("2008-04-17 18:21"));\r
                step0.setType("LOG");\r
                step0.addLog("A log message\nand another line");\r
 \r
                SlcExecutionStep step1 = new SlcExecutionStep();\r
+               step1.setUuid(UUID.randomUUID().toString());\r
                step1.setBegin(sdf.parse("2008-04-17 18:25"));\r
                step1.setType("LOG");\r
                step1.addLog("A nother log message");\r
@@ -52,15 +66,18 @@ public class SlcExecutionCastorTest extends AbstractSpringTestCase {
 \r
                SlcExecutionRequest msgSaveUnm = unmarshall(unmarshaller, msgSaveXml);\r
                assertNotNull(msgSaveUnm);\r
-               assertSlcExecution(slcExec, msgSaveUnm.getSlcExecution());\r
+               SlcExecutionTestUtils.assertSlcExecution(slcExec, msgSaveUnm\r
+                               .getSlcExecution());\r
 \r
                SlcExecutionStepsRequest msgNotifUnm = unmarshall(unmarshaller,\r
                                msgNotifXml);\r
                assertNotNull(msgNotifUnm);\r
                assertEquals(slcExec.getUuid(), msgNotifUnm.getSlcExecutionUuid());\r
                assertEquals(2, msgNotifUnm.getSteps().size());\r
-               assertSlcExecutionStep(step0, msgNotifUnm.getSteps().get(0));\r
-               assertSlcExecutionStep(step1, msgNotifUnm.getSteps().get(1));\r
+               SlcExecutionTestUtils.assertSlcExecutionStep(step0, msgNotifUnm\r
+                               .getSteps().get(0));\r
+               SlcExecutionTestUtils.assertSlcExecutionStep(step1, msgNotifUnm\r
+                               .getSteps().get(1));\r
 \r
                SlcExecution slcExecUnm = msgSaveUnm.getSlcExecution();\r
                slcExecUnm.getSteps().addAll(msgNotifUnm.getSteps());\r
@@ -68,16 +85,23 @@ public class SlcExecutionCastorTest extends AbstractSpringTestCase {
                SlcExecutionRequest msgUpdate = new SlcExecutionRequest();\r
                msgUpdate.setSlcExecution(slcExecUnm);\r
                String msgUpdateXml = marshallAndLog(marshaller, msgUpdate);\r
+\r
+               SlcExecutionRequest msgUpdateUnm = unmarshall(unmarshaller,\r
+                               msgUpdateXml);\r
+               assertNotNull(msgUpdateUnm);\r
        }\r
 \r
        private String marshallAndLog(Marshaller marshaller, Object obj)\r
                        throws IOException {\r
-               StringWriter writer = new StringWriter();\r
-               marshaller.marshal(obj, new StreamResult(writer));\r
-               String xml = writer.toString();\r
-               log.info(xml);\r
-               IOUtils.closeQuietly(writer);\r
-               return xml;\r
+               StringResult xml = new StringResult();\r
+               marshaller.marshal(obj, xml);\r
+               log.info("Marshalled object: " + xml);\r
+\r
+               XsdSchema schema = getBean("schema");\r
+               UnitXmlUtils.assertXsdSchemaValidation(schema, new StringSource(xml\r
+                               .toString()));\r
+\r
+               return xml.toString();\r
        }\r
 \r
        private <T> T unmarshall(Unmarshaller unmarshaller, String xml)\r
@@ -87,30 +111,4 @@ public class SlcExecutionCastorTest extends AbstractSpringTestCase {
                IOUtils.closeQuietly(reader);\r
                return (T) obj;\r
        }\r
-\r
-       private void assertSlcExecution(SlcExecution expected, SlcExecution reached) {\r
-               assertNotNull(reached);\r
-               assertEquals(expected.getHost(), reached.getHost());\r
-               assertEquals(expected.getPath(), reached.getPath());\r
-               assertEquals(expected.getType(), reached.getType());\r
-               assertEquals(expected.getStatus(), reached.getStatus());\r
-       }\r
-\r
-       private void assertSlcExecutionStep(SlcExecutionStep expected,\r
-                       SlcExecutionStep reached) {\r
-               assertNotNull(reached);\r
-               assertEquals(expected.getType(), reached.getType());\r
-               assertEquals(expected.logAsString(), reached.logAsString());\r
-               assertEquals(expected.getBegin(), reached.getBegin());\r
-       }\r
-\r
-       public static SlcExecution createSimpleSlcExecution() {\r
-               SlcExecution slcExec = new SlcExecution();\r
-               slcExec.setUuid(UUID.randomUUID().toString());\r
-               slcExec.setHost("localhost");\r
-               slcExec.setPath("/test");\r
-               slcExec.setType("slcAnt");\r
-               slcExec.setStatus("STARTED");\r
-               return slcExec;\r
-       }\r
 }\r