From 3a54600a79a95eb09479d88ef57e51a4c32dce76 Mon Sep 17 00:00:00 2001 From: Kenji Nagahashi Date: Wed, 29 May 2013 12:03:49 -0700 Subject: [PATCH] ADD unit test for XmlMarshaller --- .../crawler/restlet/XmlMarshallerTest.java | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 engine/src/test/java/org/archive/crawler/restlet/XmlMarshallerTest.java diff --git a/engine/src/test/java/org/archive/crawler/restlet/XmlMarshallerTest.java b/engine/src/test/java/org/archive/crawler/restlet/XmlMarshallerTest.java new file mode 100644 index 00000000..ac44ac2a --- /dev/null +++ b/engine/src/test/java/org/archive/crawler/restlet/XmlMarshallerTest.java @@ -0,0 +1,112 @@ +/** + * + */ +package org.archive.crawler.restlet; + +import java.io.StringWriter; +import java.util.LinkedHashMap; +import java.util.Map; + +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + +import junit.framework.TestCase; + +/** + * @author kenji + * + */ +public class XmlMarshallerTest extends TestCase { + + /* (non-Javadoc) + * @see junit.framework.TestCase#setUp() + */ + protected void setUp() throws Exception { + super.setUp(); + } + + /** + * Map with nested Map + * @throws Exception + */ + public void testMarshalMap() throws Exception { + Map map = new LinkedHashMap(); + map.put("c", 1); + map.put("a", "a-value"); + Map nestedMap = new LinkedHashMap(); + nestedMap.put("x", 10); + nestedMap.put("y", "y-value"); + map.put("m", nestedMap); + + StringWriter w = new StringWriter(); + XmlMarshaller.marshalDocument(w, "doc", map); + + String expected = "(?s:)" + + "^<\\?xml version=\"1\\.0\" standalone='yes'\\?>\\s*" + + "\\s*1\\s*a-value\\s*" + + "\\s*10\\s*y-value\\s*\\s*" + + "\\s*$"; + String xml = w.toString(); + System.out.println(xml); + assertTrue("xml matches expected RE", xml.matches(expected)); + } + + @XmlRootElement + @XmlType(propOrder={"c", "a", "m"}) + public static class Model { + public int getC() { return 1; } + public String getA() { return "a-value"; } + public Object getM() { + return new NestedModel(); + } + } + @XmlRootElement + @XmlType(propOrder={"x", "y"}) + public static class NestedModel { + public int getX() { return 10; } + public String getY() { return "y-value"; } + } + + /** + * Bean with nested Bean + * @throws Exception + */ + public void testMashalBean() throws Exception { + Object bean = new Model(); + StringWriter w = new StringWriter(); + XmlMarshaller.marshalDocument(w, "doc", bean); + + String expected = "(?s:)" + + "^<\\?xml version=\"1\\.0\" standalone='yes'\\?>\\s*" + + "\\s*1\\s*a-value\\s*" + + "\\s*10\\s*y-value\\s*\\s*" + + "\\s*$"; + String xml = w.toString(); + System.out.println(xml); + assertTrue("xml matches expected RE", xml.matches(expected)); + } + + /** + * Map with nested Bean + * @throws Exception + */ + public void testMarshalBeanInMap() throws Exception { + Map map = new LinkedHashMap(); + map.put("c", 1); + map.put("a", "a-value"); + Object m = new NestedModel(); + map.put("m", m); + + StringWriter w = new StringWriter(); + XmlMarshaller.marshalDocument(w, "doc", map); + + String expected = "(?s:)" + + "^<\\?xml version=\"1\\.0\" standalone='yes'\\?>\\s*" + + "\\s*1\\s*a-value\\s*" + + "\\s*10\\s*y-value\\s*\\s*" + + "\\s*$"; + String xml = w.toString(); + System.out.println(xml); + assertTrue("xml matches expected RE", xml.matches(expected)); + } +}