[Practicalxml-commits] SF.net SVN: practicalxml:[123] branches/dev-1.1/src/test/java/net/sf/ practi
Brought to you by:
kdgregory
|
From: Auto-Generated S. C. M. <pra...@li...> - 2009-09-08 15:10:27
|
Revision: 123
http://practicalxml.svn.sourceforge.net/practicalxml/?rev=123&view=rev
Author: kdgregory
Date: 2009-09-08 15:10:15 +0000 (Tue, 08 Sep 2009)
Log Message:
-----------
more testcase repackaging
Added Paths:
-----------
branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/bean/TestBeanConverter.java
Removed Paths:
-------------
branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestBeanConverter.java
Deleted: branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestBeanConverter.java
===================================================================
--- branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestBeanConverter.java 2009-09-08 14:55:08 UTC (rev 122)
+++ branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestBeanConverter.java 2009-09-08 15:10:15 UTC (rev 123)
@@ -1,426 +0,0 @@
-// Copyright 2008-2009 severally by the contributors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package net.sf.practicalxml.converter;
-
-import java.math.BigDecimal;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.SortedSet;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import net.sf.practicalxml.DomUtil;
-import net.sf.practicalxml.OutputUtil;
-import net.sf.practicalxml.converter.bean.AbstractBeanConverterTestCase;
-import net.sf.practicalxml.converter.bean.Bean2XmlOptions;
-import net.sf.practicalxml.converter.bean.Xml2BeanOptions;
-import net.sf.practicalxml.junit.DomAsserts;
-
-
-/**
- * Tests for the top-level <code>BeanConverter</code> methods. These are all
- * "out and back" tests to verify that we can read the XML that we produce
- * (and to show cases where we can't). Detailed tests (verifying specific
- * output) are in {@link TestBean2XmlDriver} and {@link TestXml2BeanDriver}.
- * <p>
- * Note that each conversion has a commented-out line that will print the
- * generated XML. Uncommenting these lines may help you understand how
- * conversion works in particular cases.
- */
-public class TestBeanConverter
-extends AbstractBeanConverterTestCase
-{
- public TestBeanConverter(String name)
- {
- super(name);
- }
-
-
-//----------------------------------------------------------------------------
-// Support Code
-//----------------------------------------------------------------------------
-
- private static void assertConversionFailure(
- String message, BeanConverter converter, Element elem, Class<?> klass)
- {
- try
- {
- converter.convertToJava(elem, klass);
- fail(message);
- }
- catch (ConversionException ee)
- {
-// System.out.println(ee);
- }
- }
-
-//----------------------------------------------------------------------------
-// Test Cases
-//----------------------------------------------------------------------------
-
- // an initial test to verify everything works
- public void testConvertStringDefault() throws Exception
- {
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter();
-
- String obj = "this is a test";
- Element root = outConverter.convertToXml(obj, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
- assertEquals("test", DomUtil.getLocalName(root));
-
- Object result = inConverter.convertToJava(root, String.class);
- assertEquals(obj, result);
- }
-
-
- public void testConvertPrimitiveDefault() throws Exception
- {
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter();
-
- for (PrimitiveValue value : PRIMITIVE_VALUES)
- {
- Object obj = value.getValue();
- Element root = outConverter.convertToXml(obj, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- Object result = inConverter.convertToJava(root, value.getKlass());
- assertEquals(obj, result);
- }
- }
-
-
- public void testConvertPrimitiveFormatXsd() throws Exception
- {
- BeanConverter outConverter = new BeanConverter(Bean2XmlOptions.XSD_FORMAT);
- BeanConverter inConverter = new BeanConverter(Xml2BeanOptions.EXPECT_XSD_FORMAT);
-
- for (PrimitiveValue value : PRIMITIVE_VALUES)
- {
- Object obj = value.getValue();
- Element root = outConverter.convertToXml(obj, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- Object result = inConverter.convertToJava(root, value.getKlass());
- assertEquals(obj, result);
- }
- }
-
-
- public void testConvertNullDefault() throws Exception
- {
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter();
-
- Element root = outConverter.convertToXml(null, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- Object result = inConverter.convertToJava(root, String.class);
- assertNull(result);
- }
-
-
- public void testConvertNullUseAndRequireXsiNil() throws Exception
- {
- BeanConverter outConverter = new BeanConverter(Bean2XmlOptions.XSI_NIL);
- BeanConverter inConverter = new BeanConverter(Xml2BeanOptions.REQUIRE_XSI_NIL);
-
- Element root = outConverter.convertToXml(null, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- Object result = inConverter.convertToJava(root, String.class);
- assertNull(result);
- }
-
-
- public void testConvertNullFailureRequireXsiNil() throws Exception
- {
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter(Xml2BeanOptions.REQUIRE_XSI_NIL);
-
- Element root = outConverter.convertToXml(null, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- assertConversionFailure("accepted DOM with null entry but no xsi:nil",
- inConverter, root, String.class);
- }
-
-
- public void testPrimitiveArrayDefault() throws Exception
- {
- int[] data = new int[] { 1, 2, 4, 5 };
-
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter();
-
- Element root = outConverter.convertToXml(data, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- int[] result = inConverter.convertToJava(root, int[].class);
- assertTrue(Arrays.equals(data, result));
- }
-
-
- public void testStringListDefault() throws Exception
- {
- List<String> data = Arrays.asList("foo", "bar", "baz");
-
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter();
-
- Element root = outConverter.convertToXml(data, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- List<String> result = inConverter.convertToJava(root, List.class);
- assertEquals(data, result);
- }
-
-
- // demonstrates that the list will be read as List<String> even though
- // it was written as List<Integer>
- public void testIntegerListDefault() throws Exception
- {
- List<Integer> data = Arrays.asList(1, 2, 3);
- assert(data.get(0) instanceof Integer);
-
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter();
-
- Element root = outConverter.convertToXml(data, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- List<?> result = inConverter.convertToJava(root, List.class);
- assertTrue(result instanceof List);
- assertTrue(result.get(0) instanceof String);
- }
-
-
- // demonstrates that you don't need to require xsi:type to use it
- public void testIntegerListWithXsiType() throws Exception
- {
- List<Integer> data = Arrays.asList(1, 2, 3);
- assert(data.get(0) instanceof Integer);
-
- BeanConverter outConverter = new BeanConverter(Bean2XmlOptions.ADD_XSI_TYPE);
- BeanConverter inConverter = new BeanConverter();
-
- Element root = outConverter.convertToXml(data, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- List<?> result = inConverter.convertToJava(root, List.class);
- assertEquals(data, result);
- }
-
-
- // demonstrates that the caller drives the inbound conversion
- public void testConvertListToSortedSet() throws Exception
- {
- List<String> data = Arrays.asList("foo", "bar", "baz", "bar");
-
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter();
-
- Element root = outConverter.convertToXml(data, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- Set<?> result = inConverter.convertToJava(root, SortedSet.class);
- Iterator<?> itx = result.iterator();
- assertEquals("bar", itx.next());
- assertEquals("baz", itx.next());
- assertEquals("foo", itx.next());
- assertFalse(itx.hasNext());
- }
-
-
- public void testMapDefault() throws Exception
- {
- Map<String,String> data = new HashMap<String,String>();
- data.put("foo", "argle");
- data.put("bar", "bargle");
- data.put("baz", "bazgle");
-
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter();
-
- Element root = outConverter.convertToXml(data, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- DomAsserts.assertCount(3, root, "/test/data");
- DomAsserts.assertCount(1, root, "/test/data[@key='foo']");
- DomAsserts.assertEquals("argle", root, "/test/data[@key='foo']");
-
- Map<?,?> result = inConverter.convertToJava(root, Map.class);
- assertEquals(data, result);
- }
-
-
- // demonstrates that the input converter handles either format by default
- public void testMapIntrospected() throws Exception
- {
- Map<String,String> data = new HashMap<String,String>();
- data.put("foo", "argle");
- data.put("bar", "bargle");
- data.put("baz", "bazgle");
-
- BeanConverter outConverter = new BeanConverter(Bean2XmlOptions.INTROSPECT_MAPS);
- BeanConverter inConverter = new BeanConverter();
-
- Element root = outConverter.convertToXml(data, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- DomAsserts.assertCount(0, root, "/test/data");
- DomAsserts.assertCount(1, root, "/test/foo");
- DomAsserts.assertEquals("argle", root, "/test/foo");
-
- Map<?,?> result = inConverter.convertToJava(root, Map.class);
- assertEquals(data, result);
- }
-
-
- public void testSimpleBeanDefault() throws Exception
- {
- SimpleBean data = new SimpleBean("abc", 123, new BigDecimal("456.789"), true);
-
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter();
-
- Element root = outConverter.convertToXml(data, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- SimpleBean result = inConverter.convertToJava(root, SimpleBean.class);
- data.assertEquals(result);
- }
-
-
- public void testSimpleBeanRequireXsiType() throws Exception
- {
- SimpleBean data = new SimpleBean("abc", 123, new BigDecimal("456.789"), true);
-
- BeanConverter outconverter1 = new BeanConverter(Bean2XmlOptions.ADD_XSI_TYPE);
- BeanConverter outconverter2 = new BeanConverter();
- BeanConverter inConverter = new BeanConverter(Xml2BeanOptions.REQUIRE_XSI_TYPE);
-
- Element valid = outconverter1.convertToXml(data, "test");
-// System.out.println(OutputUtil.compactString(valid.getOwnerDocument()));
-
- SimpleBean result = inConverter.convertToJava(valid, SimpleBean.class);
- data.assertEquals(result);
-
- Element invalid = outconverter2.convertToXml(data, "test");
-// System.out.println(OutputUtil.compactString(invalid.getOwnerDocument()));
-
- assertConversionFailure("converter requiring xsi:type accepted XML without",
- inConverter, invalid, SimpleBean.class);
- }
-
-
- public void testListOfSimpleBeanWithXsiTypeAndNulls() throws Exception
- {
- SimpleBean bean1 = new SimpleBean("abc", 123, new BigDecimal("456.789"), true);
- SimpleBean bean2 = new SimpleBean("zyx", 987, null, false);
- List<SimpleBean> data = Arrays.asList(bean1, bean2);
-
- BeanConverter outConverter = new BeanConverter(Bean2XmlOptions.ADD_XSI_TYPE);
- BeanConverter inConverter = new BeanConverter();
-
- Element root = outConverter.convertToXml(data, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- List<SimpleBean> result = inConverter.convertToJava(root, List.class);
- assertEquals(2, result.size());
- bean1.assertEquals(result.get(0));
- bean2.assertEquals(result.get(1));
- }
-
-
- // another demonstration that caller drives input conversion
- // ... and note that we don't care about xsi:type in this case
- public void testListOfSimpleBeanToArrayOfSame() throws Exception
- {
- SimpleBean bean1 = new SimpleBean("abc", 123, new BigDecimal("456.789"), true);
- SimpleBean bean2 = new SimpleBean("zyx", 987, null, false);
- List<SimpleBean> data = Arrays.asList(bean1, bean2);
-
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter();
-
- Element root = outConverter.convertToXml(data, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- SimpleBean[] result = inConverter.convertToJava(root, SimpleBean[].class);
- assertEquals(2, result.length);
- bean1.assertEquals(result[0]);
- bean2.assertEquals(result[1]);
- }
-
-
- public void testCompoundBeanDefault() throws Exception
- {
- CompoundBean data = new CompoundBean(
- new SimpleBean("abc", 123, new BigDecimal("456.789"), true),
- new int[] { 1, 5, 7, 9 },
- Arrays.asList("foo", "bar", "baz"));
-
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter();
-
- Element root = outConverter.convertToXml(data, "test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- CompoundBean result = inConverter.convertToJava(root, CompoundBean.class);
- data.assertEquals(result);
- }
-
-
- public void testSimpleBeanWithNamespace() throws Exception
- {
- SimpleBean data = new SimpleBean("abc", 123, new BigDecimal("456.789"), true);
-
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter();
-
- Element root = outConverter.convertToXml(data, "urn:foo", "bar:test");
-// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
-
- Element child = DomUtil.getChild(root, "sval");
- assertEquals("urn:foo", child.getNamespaceURI());
- assertEquals("bar", child.getPrefix());
-
- SimpleBean result = inConverter.convertToJava(root, SimpleBean.class);
- data.assertEquals(result);
- }
-
-
- // this one is here just for coverage
- public void testSimpleBeanFromDocument() throws Exception
- {
- SimpleBean data = new SimpleBean("abc", 123, new BigDecimal("456.789"), true);
-
- BeanConverter outConverter = new BeanConverter();
- BeanConverter inConverter = new BeanConverter();
-
- Document dom = outConverter.convertToXml(data, "test").getOwnerDocument();
-// System.out.println(OutputUtil.compactString(dom));
-
- SimpleBean result = inConverter.convertToJava(dom, SimpleBean.class);
- data.assertEquals(result);
- }
-}
\ No newline at end of file
Copied: branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/bean/TestBeanConverter.java (from rev 121, branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestBeanConverter.java)
===================================================================
--- branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/bean/TestBeanConverter.java (rev 0)
+++ branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/bean/TestBeanConverter.java 2009-09-08 15:10:15 UTC (rev 123)
@@ -0,0 +1,428 @@
+// Copyright 2008-2009 severally by the contributors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package net.sf.practicalxml.converter.bean;
+
+import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedSet;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import net.sf.practicalxml.DomUtil;
+import net.sf.practicalxml.OutputUtil;
+import net.sf.practicalxml.converter.BeanConverter;
+import net.sf.practicalxml.converter.ConversionException;
+import net.sf.practicalxml.converter.bean.AbstractBeanConverterTestCase;
+import net.sf.practicalxml.converter.bean.Bean2XmlOptions;
+import net.sf.practicalxml.converter.bean.Xml2BeanOptions;
+import net.sf.practicalxml.junit.DomAsserts;
+
+
+/**
+ * Tests for the top-level <code>BeanConverter</code> methods. These are all
+ * "out and back" tests to verify that we can read the XML that we produce
+ * (and to show cases where we can't). Detailed tests (verifying specific
+ * output) are in {@link TestBean2XmlDriver} and {@link TestXml2BeanDriver}.
+ * <p>
+ * Note that each conversion has a commented-out line that will print the
+ * generated XML. Uncommenting these lines may help you understand how
+ * conversion works in particular cases.
+ */
+public class TestBeanConverter
+extends AbstractBeanConverterTestCase
+{
+ public TestBeanConverter(String name)
+ {
+ super(name);
+ }
+
+
+//----------------------------------------------------------------------------
+// Support Code
+//----------------------------------------------------------------------------
+
+ private static void assertConversionFailure(
+ String message, BeanConverter converter, Element elem, Class<?> klass)
+ {
+ try
+ {
+ converter.convertToJava(elem, klass);
+ fail(message);
+ }
+ catch (ConversionException ee)
+ {
+// System.out.println(ee);
+ }
+ }
+
+//----------------------------------------------------------------------------
+// Test Cases
+//----------------------------------------------------------------------------
+
+ // an initial test to verify everything works
+ public void testConvertStringDefault() throws Exception
+ {
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter();
+
+ String obj = "this is a test";
+ Element root = outConverter.convertToXml(obj, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+ assertEquals("test", DomUtil.getLocalName(root));
+
+ Object result = inConverter.convertToJava(root, String.class);
+ assertEquals(obj, result);
+ }
+
+
+ public void testConvertPrimitiveDefault() throws Exception
+ {
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter();
+
+ for (PrimitiveValue value : PRIMITIVE_VALUES)
+ {
+ Object obj = value.getValue();
+ Element root = outConverter.convertToXml(obj, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ Object result = inConverter.convertToJava(root, value.getKlass());
+ assertEquals(obj, result);
+ }
+ }
+
+
+ public void testConvertPrimitiveFormatXsd() throws Exception
+ {
+ BeanConverter outConverter = new BeanConverter(Bean2XmlOptions.XSD_FORMAT);
+ BeanConverter inConverter = new BeanConverter(Xml2BeanOptions.EXPECT_XSD_FORMAT);
+
+ for (PrimitiveValue value : PRIMITIVE_VALUES)
+ {
+ Object obj = value.getValue();
+ Element root = outConverter.convertToXml(obj, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ Object result = inConverter.convertToJava(root, value.getKlass());
+ assertEquals(obj, result);
+ }
+ }
+
+
+ public void testConvertNullDefault() throws Exception
+ {
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter();
+
+ Element root = outConverter.convertToXml(null, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ Object result = inConverter.convertToJava(root, String.class);
+ assertNull(result);
+ }
+
+
+ public void testConvertNullUseAndRequireXsiNil() throws Exception
+ {
+ BeanConverter outConverter = new BeanConverter(Bean2XmlOptions.XSI_NIL);
+ BeanConverter inConverter = new BeanConverter(Xml2BeanOptions.REQUIRE_XSI_NIL);
+
+ Element root = outConverter.convertToXml(null, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ Object result = inConverter.convertToJava(root, String.class);
+ assertNull(result);
+ }
+
+
+ public void testConvertNullFailureRequireXsiNil() throws Exception
+ {
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter(Xml2BeanOptions.REQUIRE_XSI_NIL);
+
+ Element root = outConverter.convertToXml(null, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ assertConversionFailure("accepted DOM with null entry but no xsi:nil",
+ inConverter, root, String.class);
+ }
+
+
+ public void testPrimitiveArrayDefault() throws Exception
+ {
+ int[] data = new int[] { 1, 2, 4, 5 };
+
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter();
+
+ Element root = outConverter.convertToXml(data, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ int[] result = inConverter.convertToJava(root, int[].class);
+ assertTrue(Arrays.equals(data, result));
+ }
+
+
+ public void testStringListDefault() throws Exception
+ {
+ List<String> data = Arrays.asList("foo", "bar", "baz");
+
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter();
+
+ Element root = outConverter.convertToXml(data, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ List<String> result = inConverter.convertToJava(root, List.class);
+ assertEquals(data, result);
+ }
+
+
+ // demonstrates that the list will be read as List<String> even though
+ // it was written as List<Integer>
+ public void testIntegerListDefault() throws Exception
+ {
+ List<Integer> data = Arrays.asList(1, 2, 3);
+ assert(data.get(0) instanceof Integer);
+
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter();
+
+ Element root = outConverter.convertToXml(data, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ List<?> result = inConverter.convertToJava(root, List.class);
+ assertTrue(result instanceof List);
+ assertTrue(result.get(0) instanceof String);
+ }
+
+
+ // demonstrates that you don't need to require xsi:type to use it
+ public void testIntegerListWithXsiType() throws Exception
+ {
+ List<Integer> data = Arrays.asList(1, 2, 3);
+ assert(data.get(0) instanceof Integer);
+
+ BeanConverter outConverter = new BeanConverter(Bean2XmlOptions.ADD_XSI_TYPE);
+ BeanConverter inConverter = new BeanConverter();
+
+ Element root = outConverter.convertToXml(data, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ List<?> result = inConverter.convertToJava(root, List.class);
+ assertEquals(data, result);
+ }
+
+
+ // demonstrates that the caller drives the inbound conversion
+ public void testConvertListToSortedSet() throws Exception
+ {
+ List<String> data = Arrays.asList("foo", "bar", "baz", "bar");
+
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter();
+
+ Element root = outConverter.convertToXml(data, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ Set<?> result = inConverter.convertToJava(root, SortedSet.class);
+ Iterator<?> itx = result.iterator();
+ assertEquals("bar", itx.next());
+ assertEquals("baz", itx.next());
+ assertEquals("foo", itx.next());
+ assertFalse(itx.hasNext());
+ }
+
+
+ public void testMapDefault() throws Exception
+ {
+ Map<String,String> data = new HashMap<String,String>();
+ data.put("foo", "argle");
+ data.put("bar", "bargle");
+ data.put("baz", "bazgle");
+
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter();
+
+ Element root = outConverter.convertToXml(data, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ DomAsserts.assertCount(3, root, "/test/data");
+ DomAsserts.assertCount(1, root, "/test/data[@key='foo']");
+ DomAsserts.assertEquals("argle", root, "/test/data[@key='foo']");
+
+ Map<?,?> result = inConverter.convertToJava(root, Map.class);
+ assertEquals(data, result);
+ }
+
+
+ // demonstrates that the input converter handles either format by default
+ public void testMapIntrospected() throws Exception
+ {
+ Map<String,String> data = new HashMap<String,String>();
+ data.put("foo", "argle");
+ data.put("bar", "bargle");
+ data.put("baz", "bazgle");
+
+ BeanConverter outConverter = new BeanConverter(Bean2XmlOptions.INTROSPECT_MAPS);
+ BeanConverter inConverter = new BeanConverter();
+
+ Element root = outConverter.convertToXml(data, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ DomAsserts.assertCount(0, root, "/test/data");
+ DomAsserts.assertCount(1, root, "/test/foo");
+ DomAsserts.assertEquals("argle", root, "/test/foo");
+
+ Map<?,?> result = inConverter.convertToJava(root, Map.class);
+ assertEquals(data, result);
+ }
+
+
+ public void testSimpleBeanDefault() throws Exception
+ {
+ SimpleBean data = new SimpleBean("abc", 123, new BigDecimal("456.789"), true);
+
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter();
+
+ Element root = outConverter.convertToXml(data, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ SimpleBean result = inConverter.convertToJava(root, SimpleBean.class);
+ data.assertEquals(result);
+ }
+
+
+ public void testSimpleBeanRequireXsiType() throws Exception
+ {
+ SimpleBean data = new SimpleBean("abc", 123, new BigDecimal("456.789"), true);
+
+ BeanConverter outconverter1 = new BeanConverter(Bean2XmlOptions.ADD_XSI_TYPE);
+ BeanConverter outconverter2 = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter(Xml2BeanOptions.REQUIRE_XSI_TYPE);
+
+ Element valid = outconverter1.convertToXml(data, "test");
+// System.out.println(OutputUtil.compactString(valid.getOwnerDocument()));
+
+ SimpleBean result = inConverter.convertToJava(valid, SimpleBean.class);
+ data.assertEquals(result);
+
+ Element invalid = outconverter2.convertToXml(data, "test");
+// System.out.println(OutputUtil.compactString(invalid.getOwnerDocument()));
+
+ assertConversionFailure("converter requiring xsi:type accepted XML without",
+ inConverter, invalid, SimpleBean.class);
+ }
+
+
+ public void testListOfSimpleBeanWithXsiTypeAndNulls() throws Exception
+ {
+ SimpleBean bean1 = new SimpleBean("abc", 123, new BigDecimal("456.789"), true);
+ SimpleBean bean2 = new SimpleBean("zyx", 987, null, false);
+ List<SimpleBean> data = Arrays.asList(bean1, bean2);
+
+ BeanConverter outConverter = new BeanConverter(Bean2XmlOptions.ADD_XSI_TYPE);
+ BeanConverter inConverter = new BeanConverter();
+
+ Element root = outConverter.convertToXml(data, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ List<SimpleBean> result = inConverter.convertToJava(root, List.class);
+ assertEquals(2, result.size());
+ bean1.assertEquals(result.get(0));
+ bean2.assertEquals(result.get(1));
+ }
+
+
+ // another demonstration that caller drives input conversion
+ // ... and note that we don't care about xsi:type in this case
+ public void testListOfSimpleBeanToArrayOfSame() throws Exception
+ {
+ SimpleBean bean1 = new SimpleBean("abc", 123, new BigDecimal("456.789"), true);
+ SimpleBean bean2 = new SimpleBean("zyx", 987, null, false);
+ List<SimpleBean> data = Arrays.asList(bean1, bean2);
+
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter();
+
+ Element root = outConverter.convertToXml(data, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ SimpleBean[] result = inConverter.convertToJava(root, SimpleBean[].class);
+ assertEquals(2, result.length);
+ bean1.assertEquals(result[0]);
+ bean2.assertEquals(result[1]);
+ }
+
+
+ public void testCompoundBeanDefault() throws Exception
+ {
+ CompoundBean data = new CompoundBean(
+ new SimpleBean("abc", 123, new BigDecimal("456.789"), true),
+ new int[] { 1, 5, 7, 9 },
+ Arrays.asList("foo", "bar", "baz"));
+
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter();
+
+ Element root = outConverter.convertToXml(data, "test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ CompoundBean result = inConverter.convertToJava(root, CompoundBean.class);
+ data.assertEquals(result);
+ }
+
+
+ public void testSimpleBeanWithNamespace() throws Exception
+ {
+ SimpleBean data = new SimpleBean("abc", 123, new BigDecimal("456.789"), true);
+
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter();
+
+ Element root = outConverter.convertToXml(data, "urn:foo", "bar:test");
+// System.out.println(OutputUtil.compactString(root.getOwnerDocument()));
+
+ Element child = DomUtil.getChild(root, "sval");
+ assertEquals("urn:foo", child.getNamespaceURI());
+ assertEquals("bar", child.getPrefix());
+
+ SimpleBean result = inConverter.convertToJava(root, SimpleBean.class);
+ data.assertEquals(result);
+ }
+
+
+ // this one is here just for coverage
+ public void testSimpleBeanFromDocument() throws Exception
+ {
+ SimpleBean data = new SimpleBean("abc", 123, new BigDecimal("456.789"), true);
+
+ BeanConverter outConverter = new BeanConverter();
+ BeanConverter inConverter = new BeanConverter();
+
+ Document dom = outConverter.convertToXml(data, "test").getOwnerDocument();
+// System.out.println(OutputUtil.compactString(dom));
+
+ SimpleBean result = inConverter.convertToJava(dom, SimpleBean.class);
+ data.assertEquals(result);
+ }
+}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|