]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
TreeTestResult marshalling/unmarshalling
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 25 Apr 2008 14:42:33 +0000 (14:42 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 25 Apr 2008 14:42:33 +0000 (14:42 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1075 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/test/tree/mapping.xml [new file with mode: 0644]
org.argeo.slc.core/src/test/java/org/argeo/slc/core/test/tree/TreeTestResultCastorTest.java [new file with mode: 0644]
org.argeo.slc.core/src/test/resources/org/argeo/slc/core/test/tree/applicationContext.xml [new file with mode: 0644]

diff --git a/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/test/tree/mapping.xml b/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/test/tree/mapping.xml
new file mode 100644 (file)
index 0000000..dad0725
--- /dev/null
@@ -0,0 +1,74 @@
+<?xml version="1.0"?>\r
+\r
+<mapping>\r
+       <description>TreeTestResult objects XML mapping</description>\r
+\r
+       <class name="org.argeo.slc.core.test.tree.TreeTestResult"\r
+               auto-complete="false">\r
+               <field name="numericResultId"\r
+                       type="org.argeo.slc.core.test.NumericTRId" />\r
+               <field name="closeDate" />\r
+               <field name="resultParts" collection="map">\r
+                       <bind-xml name="result-part" location="result-parts">\r
+                               <class name="org.exolab.castor.mapping.MapItem">\r
+                                       <field name="key"\r
+                                               type="org.argeo.slc.core.structure.tree.TreeSPath">\r
+                                               <bind-xml name="path" node="attribute" />\r
+                                       </field>\r
+                                       <field name="value"\r
+                                               type="org.argeo.slc.core.test.tree.PartSubList">\r
+                                               <bind-xml name="part-sub-list" />\r
+                                       </field>\r
+                               </class>\r
+                       </bind-xml>\r
+               </field>\r
+               <field name="pathNames" collection="map">\r
+                       <bind-xml name="path-name" location="path-names">\r
+                               <class name="org.exolab.castor.mapping.MapItem">\r
+                                       <field name="key"\r
+                                               type="org.argeo.slc.core.structure.tree.TreeSPath">\r
+                                               <bind-xml name="path" node="attribute" />\r
+                                       </field>\r
+                                       <field name="value" type="string">\r
+                                               <bind-xml name="name" />\r
+                                       </field>\r
+                               </class>\r
+                       </bind-xml>\r
+               </field>\r
+       </class>\r
+\r
+       <class name="org.argeo.slc.core.test.tree.PartSubList"\r
+               auto-complete="false">\r
+               <field name="slcExecutionUuid" type="string" />\r
+               <field name="slcExecutionStepUuid" type="string" />\r
+               <field name="parts" collection="vector"\r
+                       type="org.argeo.slc.core.test.SimpleResultPart">\r
+                       <bind-xml auto-naming="deriveByClass" location="parts" />\r
+               </field>\r
+       </class>\r
+\r
+       <class name="org.argeo.slc.core.structure.tree.TreeSPath"\r
+               auto-complete="false">\r
+               <field name="asUniqueString" type="string" />\r
+       </class>\r
+\r
+       <class name="java.lang.StackTraceElement" auto-complete="false"\r
+               verify-constructable="false">\r
+               <field name="declaringClass" type="string" set-method="%1"\r
+                       get-method="getClassName">\r
+                       <bind-xml node="attribute" />\r
+               </field>\r
+               <field name="methodName" type="string" set-method="%2"\r
+                       get-method="getMethodName">\r
+                       <bind-xml node="attribute" />\r
+               </field>\r
+               <field name="fileName" type="string" set-method="%3"\r
+                       get-method="getFileName">\r
+                       <bind-xml node="attribute" />\r
+               </field>\r
+               <field name="lineNumber" type="integer" set-method="%4"\r
+                       get-method="getLineNumber">\r
+                       <bind-xml node="attribute" />\r
+               </field>\r
+       </class>\r
+</mapping>
\ No newline at end of file
diff --git a/org.argeo.slc.core/src/test/java/org/argeo/slc/core/test/tree/TreeTestResultCastorTest.java b/org.argeo.slc.core/src/test/java/org/argeo/slc/core/test/tree/TreeTestResultCastorTest.java
new file mode 100644 (file)
index 0000000..974ebce
--- /dev/null
@@ -0,0 +1,36 @@
+package org.argeo.slc.core.test.tree;\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
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+\r
+import static org.argeo.slc.core.test.tree.TreeTestResultTestUtils.createCompleteTreeTestResult;\r
+\r
+import org.argeo.slc.unit.AbstractSpringTestCase;\r
+import org.argeo.slc.unit.test.tree.UnitTestTreeUtil;\r
+\r
+public class TreeTestResultCastorTest extends AbstractSpringTestCase {\r
+       private Log log = LogFactory.getLog(getClass());\r
+\r
+       public void testMarshUnmarsh() throws Exception {\r
+               Marshaller marshaller = getBean("marshaller");\r
+               Unmarshaller unmarshaller = getBean("marshaller");\r
+\r
+               TreeTestResult ttr = createCompleteTreeTestResult();\r
+\r
+               StringResult xml = new StringResult();\r
+               marshaller.marshal(ttr, xml);\r
+\r
+               log.info("Marshalled TreeTestResult: " + xml);\r
+\r
+               TreeTestResult ttrUnm = (TreeTestResult) unmarshaller\r
+                               .unmarshal(new StringSource(xml.toString()));\r
+\r
+               UnitTestTreeUtil.assertTreeTestResult(ttr, ttrUnm);\r
+\r
+       }\r
+}\r
diff --git a/org.argeo.slc.core/src/test/resources/org/argeo/slc/core/test/tree/applicationContext.xml b/org.argeo.slc.core/src/test/resources/org/argeo/slc/core/test/tree/applicationContext.xml
new file mode 100644 (file)
index 0000000..59aad78
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans xmlns="http://www.springframework.org/schema/beans"\r
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
+\r
+       <bean id="marshaller"\r
+               class="org.springframework.oxm.castor.CastorMarshaller">\r
+               <property name="mappingLocation"\r
+                       value="classpath:org/argeo/slc/castor/test/tree/mapping.xml" />\r
+       </bean>\r
+</beans>
\ No newline at end of file