X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.core%2Fsrc%2Ftest%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Fprocess%2FSlcExecutionCastorTest.java;h=8ede3a234ba6ef628e92cea3ffc1e972dcfa8569;hb=5978e7e4f44af177846149d60cf5ff6e2d7462bf;hp=6405ca7bba7daf25c792567a2e40437b40d0fdf1;hpb=e289cc763e013843c52e0fa68fec024b7bd054d3;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.core/src/test/java/org/argeo/slc/core/process/SlcExecutionCastorTest.java b/org.argeo.slc.core/src/test/java/org/argeo/slc/core/process/SlcExecutionCastorTest.java index 6405ca7bb..8ede3a234 100644 --- a/org.argeo.slc.core/src/test/java/org/argeo/slc/core/process/SlcExecutionCastorTest.java +++ b/org.argeo.slc.core/src/test/java/org/argeo/slc/core/process/SlcExecutionCastorTest.java @@ -1,6 +1,7 @@ package org.argeo.slc.core.process; import java.io.IOException; +import java.io.InputStream; import java.io.StringReader; import java.io.StringWriter; import java.text.SimpleDateFormat; @@ -15,17 +16,30 @@ import org.apache.commons.logging.LogFactory; import org.argeo.slc.msg.process.SlcExecutionRequest; import org.argeo.slc.msg.process.SlcExecutionStepsRequest; import org.argeo.slc.unit.AbstractSpringTestCase; +import org.argeo.slc.unit.UnitXmlUtils; +import org.argeo.slc.unit.process.SlcExecutionTestUtils; + import org.springframework.oxm.Marshaller; import org.springframework.oxm.Unmarshaller; +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.transform.StringSource; +import org.springframework.xml.validation.XmlValidator; +import org.springframework.xml.xsd.XsdSchema; public class SlcExecutionCastorTest extends AbstractSpringTestCase { private Log log = LogFactory.getLog(getClass()); - public void testMarshalling() throws Exception { - Marshaller marshaller = getBean("marshaller"); - Unmarshaller unmarshaller = getBean("marshaller"); + private Marshaller marshaller; + private Unmarshaller unmarshaller; - SlcExecution slcExec = createSimpleSlcExecution(); + @Override + public void setUp() { + marshaller = getBean(Marshaller.class); + unmarshaller = getBean(Unmarshaller.class); + } + + public void testMarshalling() throws Exception { + SlcExecution slcExec = SlcExecutionTestUtils.createSimpleSlcExecution(); SlcExecutionRequest msgSave = new SlcExecutionRequest(); msgSave.setSlcExecution(slcExec); @@ -34,11 +48,13 @@ public class SlcExecutionCastorTest extends AbstractSpringTestCase { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); SlcExecutionStep step0 = new SlcExecutionStep(); + step0.setUuid(UUID.randomUUID().toString()); step0.setBegin(sdf.parse("2008-04-17 18:21")); step0.setType("LOG"); step0.addLog("A log message\nand another line"); SlcExecutionStep step1 = new SlcExecutionStep(); + step1.setUuid(UUID.randomUUID().toString()); step1.setBegin(sdf.parse("2008-04-17 18:25")); step1.setType("LOG"); step1.addLog("A nother log message"); @@ -52,15 +68,18 @@ public class SlcExecutionCastorTest extends AbstractSpringTestCase { SlcExecutionRequest msgSaveUnm = unmarshall(unmarshaller, msgSaveXml); assertNotNull(msgSaveUnm); - assertSlcExecution(slcExec, msgSaveUnm.getSlcExecution()); + SlcExecutionTestUtils.assertSlcExecution(slcExec, msgSaveUnm + .getSlcExecution()); SlcExecutionStepsRequest msgNotifUnm = unmarshall(unmarshaller, msgNotifXml); assertNotNull(msgNotifUnm); assertEquals(slcExec.getUuid(), msgNotifUnm.getSlcExecutionUuid()); assertEquals(2, msgNotifUnm.getSteps().size()); - assertSlcExecutionStep(step0, msgNotifUnm.getSteps().get(0)); - assertSlcExecutionStep(step1, msgNotifUnm.getSteps().get(1)); + SlcExecutionTestUtils.assertSlcExecutionStep(step0, msgNotifUnm + .getSteps().get(0)); + SlcExecutionTestUtils.assertSlcExecutionStep(step1, msgNotifUnm + .getSteps().get(1)); SlcExecution slcExecUnm = msgSaveUnm.getSlcExecution(); slcExecUnm.getSteps().addAll(msgNotifUnm.getSteps()); @@ -68,16 +87,22 @@ public class SlcExecutionCastorTest extends AbstractSpringTestCase { SlcExecutionRequest msgUpdate = new SlcExecutionRequest(); msgUpdate.setSlcExecution(slcExecUnm); String msgUpdateXml = marshallAndLog(marshaller, msgUpdate); + + SlcExecutionRequest msgUpdateUnm = unmarshall(unmarshaller, + msgUpdateXml); + assertNotNull(msgUpdateUnm); } private String marshallAndLog(Marshaller marshaller, Object obj) throws IOException { - StringWriter writer = new StringWriter(); - marshaller.marshal(obj, new StreamResult(writer)); - String xml = writer.toString(); - log.info(xml); - IOUtils.closeQuietly(writer); - return xml; + StringResult xml = new StringResult(); + marshaller.marshal(obj, xml); + log.info("Marshalled object: " + xml); + + UnitXmlUtils.assertXmlValidation(getBean(XmlValidator.class), + new StringSource(xml.toString())); + + return xml.toString(); } private T unmarshall(Unmarshaller unmarshaller, String xml) @@ -87,30 +112,4 @@ public class SlcExecutionCastorTest extends AbstractSpringTestCase { IOUtils.closeQuietly(reader); return (T) obj; } - - private void assertSlcExecution(SlcExecution expected, SlcExecution reached) { - assertNotNull(reached); - assertEquals(expected.getHost(), reached.getHost()); - assertEquals(expected.getPath(), reached.getPath()); - assertEquals(expected.getType(), reached.getType()); - assertEquals(expected.getStatus(), reached.getStatus()); - } - - private void assertSlcExecutionStep(SlcExecutionStep expected, - SlcExecutionStep reached) { - assertNotNull(reached); - assertEquals(expected.getType(), reached.getType()); - assertEquals(expected.logAsString(), reached.logAsString()); - assertEquals(expected.getBegin(), reached.getBegin()); - } - - public static SlcExecution createSimpleSlcExecution() { - SlcExecution slcExec = new SlcExecution(); - slcExec.setUuid(UUID.randomUUID().toString()); - slcExec.setHost("localhost"); - slcExec.setPath("/test"); - slcExec.setType("slcAnt"); - slcExec.setStatus("STARTED"); - return slcExec; - } }