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=efb4cf5133cd352cfc263b39148e9e91ab63dd8f;hb=7a8f034133c1112e187e2a2bfd2c56a8d2452345;hp=a9bc47e2c4a012f78dc8f7f73efc956ebdb22520;hpb=8d05b68f46cccfcea47117b6116abbd14d1dfcee;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 a9bc47e2c..efb4cf513 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 @@ -2,11 +2,9 @@ package org.argeo.slc.core.process; import java.io.IOException; import java.io.StringReader; -import java.io.StringWriter; import java.text.SimpleDateFormat; import java.util.UUID; -import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import org.apache.commons.io.IOUtils; @@ -15,16 +13,27 @@ 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; 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; + + @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(); @@ -54,15 +63,18 @@ public class SlcExecutionCastorTest extends AbstractSpringTestCase { SlcExecutionRequest msgSaveUnm = unmarshall(unmarshaller, msgSaveXml); assertNotNull(msgSaveUnm); - SlcExecutionTestUtils.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()); - SlcExecutionTestUtils.assertSlcExecutionStep(step0, msgNotifUnm.getSteps().get(0)); - SlcExecutionTestUtils.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()); @@ -70,16 +82,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)