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
import java.util.UUID;\r
\r
-import javax.xml.transform.stream.StreamResult;\r
import javax.xml.transform.stream.StreamSource;\r
\r
import org.apache.commons.io.IOUtils;\r
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
+import org.argeo.slc.unit.process.SlcExecutionTestUtils;\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.validation.XmlValidator;\r
\r
public class SlcExecutionCastorTest extends AbstractSpringTestCase {\r
private Log log = LogFactory.getLog(getClass());\r
private Marshaller marshaller;\r
private Unmarshaller unmarshaller;\r
\r
+ @Override\r
public void setUp() {\r
- marshaller = getBean("marshaller");\r
- unmarshaller = getBean("marshaller");\r
+ marshaller = getBean(Marshaller.class);\r
+ unmarshaller = getBean(Unmarshaller.class);\r
}\r
\r
public void testMarshalling() throws Exception {\r
SlcExecutionRequest msgUpdate = new SlcExecutionRequest();\r
msgUpdate.setSlcExecution(slcExecUnm);\r
String msgUpdateXml = marshallAndLog(marshaller, msgUpdate);\r
- \r
+\r
SlcExecutionRequest msgUpdateUnm = unmarshall(unmarshaller,\r
msgUpdateXml);\r
assertNotNull(msgUpdateUnm);\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
+ UnitXmlUtils.assertXmlValidation(getBean(XmlValidator.class),\r
+ new StringSource(xml.toString()));\r
+\r
+ return xml.toString();\r
}\r
\r
private <T> T unmarshall(Unmarshaller unmarshaller, String xml)\r