You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/02/20 17:46:48 UTC
[1/2] incubator-juneau git commit: Add combo tests for CalendarSwap
class.
Repository: incubator-juneau
Updated Branches:
refs/heads/master c6b0a7b44 -> 0d70804d8
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0d70804d/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java b/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
index 4fe0dfa..d98e811 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
@@ -15,7 +15,6 @@ package org.apache.juneau.transforms;
import static org.junit.Assert.*;
import java.net.*;
-import java.text.*;
import java.util.*;
import javax.xml.bind.*;
@@ -144,404 +143,6 @@ public class CalendarSwapTest {
assertEquals("Wed, 31 Jan 2001 12:34:56 GMT", f.swap(session, c));
}
-
- //====================================================================================================
- // testDefaultStringJson - DEFAULT_STRING, JSON
- //====================================================================================================
- @Test
- public void testDefaultStringJson() throws Exception {
- Class<?> f = CalendarSwap.ToString.class;
- WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
- ReaderParser p = new JsonParser().addPojoSwaps(f);
- doTest(s, p, true, "'Sun Mar 03 10:11:12 PST 1901'");
- }
-
- //====================================================================================================
- // testDefaultStringXml - DEFAULT_STRING, XML
- //====================================================================================================
- @Test
- public void testDefaultStringXml() throws Exception {
- Class<?> f = CalendarSwap.ToString.class;
- WriterSerializer s = new XmlSerializer.Sq().addPojoSwaps(f);
- ReaderParser p = new XmlParser().addPojoSwaps(f);
- doTest(s, p, true, "<string>Sun Mar 03 10:11:12 PST 1901</string>");
- }
-
- //====================================================================================================
- // testDefaultStringHtml - DEFAULT_STRING, HTML
- //====================================================================================================
- @Test
- public void testDefaultStringHtml() throws Exception {
- Class<?> f = CalendarSwap.ToString.class;
- WriterSerializer s = new HtmlSerializer().addPojoSwaps(f);
- ReaderParser p = new HtmlParser().addPojoSwaps(f);
- doTest(s, p, true, "<string>Sun Mar 03 10:11:12 PST 1901</string>");
- }
-
- //====================================================================================================
- // testDefaultStringUrlParam - DEFAULT_STRING, UON
- //====================================================================================================
- @Test
- public void testDefaultStringUon() throws Exception {
- Class<?> f = CalendarSwap.ToString.class;
- WriterSerializer s = new UonSerializer.Encoding().addPojoSwaps(f);
- ReaderParser p = UonParser.DEFAULT_DECODING.clone().addPojoSwaps(f);
- doTest(s, p, true, "'Sun+Mar+03+10:11:12+PST+1901'");
- }
-
- //====================================================================================================
- // testDefaultStringUrlParam - DEFAULT_STRING, URL-ENCODING
- //====================================================================================================
- @Test
- public void testDefaultStringUrlEncoding() throws Exception {
- Class<?> f = CalendarSwap.ToString.class;
- WriterSerializer s = new UrlEncodingSerializer().addPojoSwaps(f);
- ReaderParser p = UrlEncodingParser.DEFAULT.clone().addPojoSwaps(f);
- doTest(s, p, true, "_value='Sun+Mar+03+10:11:12+PST+1901'");
- }
-
- //====================================================================================================
- // testDefaultStringRdfXml - DEFAULT_STRING, RDF/XML
- //====================================================================================================
- @Test
- public void testDefaultStringRdfXml() throws Exception {
- Class<?> f = CalendarSwap.ToString.class;
- WriterSerializer s = getRdfSerializer().addPojoSwaps(f);
- ReaderParser p = new RdfParser.Xml().addPojoSwaps(f);
- doTest(s, p, true, "<rdf:Description><j:value>Sun Mar 03 10:11:12 PST 1901</j:value></rdf:Description>");
- }
-
- //====================================================================================================
- // testISO8601DTJson - DEFAULT_ISO8601DT, JSON
- //====================================================================================================
- @Test
- public void testISO8601DTJson() throws Exception {
- Class<?> f = CalendarSwap.ISO8601DT.class;
- WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
- ReaderParser p = new JsonParser().addPojoSwaps(f);
- String x = "'1901-03-03T10:11:12-08:00'";
- doTest(s, p, true, x);
- }
-
- //====================================================================================================
- // testISO8601DTXml - DEFAULT_ISO8601DT, XML
- //====================================================================================================
- @Test
- public void testISO8601DTXml() throws Exception {
- Class<?> f = CalendarSwap.ISO8601DT.class;
- WriterSerializer s = new XmlSerializer.Sq().addPojoSwaps(f);
- ReaderParser p = new XmlParser().addPojoSwaps(f);
- doTest(s, p, true, "<string>1901-03-03T10:11:12-08:00</string>");
- }
-
- //====================================================================================================
- // testISO8601DTHtml - DEFAULT_ISO8601DT, HTML
- //====================================================================================================
- @Test
- public void testISO8601DTHtml() throws Exception {
- Class<?> f = CalendarSwap.ISO8601DT.class;
- WriterSerializer s = new HtmlSerializer().addPojoSwaps(f);
- ReaderParser p = new HtmlParser().addPojoSwaps(f);
- doTest(s, p, true, "<string>1901-03-03T10:11:12-08:00</string>");
- }
-
- //====================================================================================================
- // testISO8601DTUrlParam - DEFAULT_ISO8601DT, UON
- //====================================================================================================
- @Test
- public void testISO8601DTUon() throws Exception {
- Class<?> f = CalendarSwap.ISO8601DT.class;
- WriterSerializer s = new UonSerializer().addPojoSwaps(f);
- ReaderParser p = new UonParser().addPojoSwaps(f);
- doTest(s, p, true, "1901-03-03T10:11:12-08:00");
- }
-
- //====================================================================================================
- // testISO8601DTUrlParam - DEFAULT_ISO8601DT, URL-ENCODING
- //====================================================================================================
- @Test
- public void testISO8601DTUrlEncoding() throws Exception {
- Class<?> f = CalendarSwap.ISO8601DT.class;
- WriterSerializer s = new UrlEncodingSerializer().addPojoSwaps(f);
- ReaderParser p = new UrlEncodingParser().addPojoSwaps(f);
- doTest(s, p, true, "_value=1901-03-03T10:11:12-08:00");
- }
-
- //====================================================================================================
- // testISO8601DTRdfXml - DEFAULT_ISO8601DT, RDF/XML
- //====================================================================================================
- @Test
- public void testISO8601DTRdfXml() throws Exception {
- Class<?> f = CalendarSwap.ISO8601DT.class;
- WriterSerializer s = getRdfSerializer().addPojoSwaps(f);
- ReaderParser p = new RdfParser.Xml().addPojoSwaps(f);
- doTest(s, p, true, "<rdf:Description><j:value>1901-03-03T10:11:12-08:00</j:value></rdf:Description>");
- }
-
- //====================================================================================================
- // testRFC2822DTJson - DEFAULT_RFC2822DT, JSON
- //====================================================================================================
- @Test
- public void testRFC2822DTJson() throws Exception {
- Class<?> f = CalendarSwap.RFC2822DTZ.class;
- WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
- ReaderParser p = new JsonParser().addPojoSwaps(f);
- doTest(s, p, true, "'Sun, 03 Mar 1901 18:11:12 GMT'");
- }
-
- //====================================================================================================
- // testRFC2822DTXml - DEFAULT_RFC2822DT, XML
- //====================================================================================================
- @Test
- public void testRFC2822DTXml() throws Exception {
- Class<?> f = CalendarSwap.RFC2822DTZ.class;
- WriterSerializer s = new XmlSerializer.Sq().addPojoSwaps(f);
- ReaderParser p = new XmlParser().addPojoSwaps(f);
- doTest(s, p, true, "<string>Sun, 03 Mar 1901 18:11:12 GMT</string>");
- }
-
- //====================================================================================================
- // testRFC2822DTHtml - DEFAULT_RFC2822DT, HTML
- //====================================================================================================
- @Test
- public void testRFC2822DTHtml() throws Exception {
- Class<?> f = CalendarSwap.RFC2822DTZ.class;
- WriterSerializer s = new HtmlSerializer().addPojoSwaps(f);
- ReaderParser p = new HtmlParser().addPojoSwaps(f);
- doTest(s, p, true, "<string>Sun, 03 Mar 1901 18:11:12 GMT</string>");
- }
-
- //====================================================================================================
- // testRFC2822DTUrlParam - DEFAULT_RFC2822DT, UON
- //====================================================================================================
- @Test
- public void testRFC2822DTUon() throws Exception {
- Class<?> f = CalendarSwap.RFC2822DTZ.class;
- WriterSerializer s = new UonSerializer.Encoding().addPojoSwaps(f);
- ReaderParser p = UonParser.DEFAULT_DECODING.clone().addPojoSwaps(f);
- doTest(s, p, true, "'Sun,+03+Mar+1901+18:11:12+GMT'");
- }
-
- //====================================================================================================
- // testRFC2822DTUrlParam - DEFAULT_RFC2822DT, URL-ENCODING
- //====================================================================================================
- @Test
- public void testRFC2822DTUrlEncoding() throws Exception {
- Class<?> f = CalendarSwap.RFC2822DTZ.class;
- WriterSerializer s = new UrlEncodingSerializer().addPojoSwaps(f);
- ReaderParser p = UrlEncodingParser.DEFAULT.clone().addPojoSwaps(f);
- doTest(s, p, true, "_value='Sun,+03+Mar+1901+18:11:12+GMT'");
- }
-
- //====================================================================================================
- // testRFC2822DTRdfXml - DEFAULT_RFC2822DT, RDF/XML
- //====================================================================================================
- @Test
- public void testRFC2822DTRdfXml() throws Exception {
- Class<?> f = CalendarSwap.RFC2822DTZ.class;
- WriterSerializer s = getRdfSerializer().addPojoSwaps(f);
- ReaderParser p = new RdfParser.Xml().addPojoSwaps(f);
- doTest(s, p, true, "<rdf:Description><j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value></rdf:Description>");
- }
-
- //====================================================================================================
- // testDefaultLongJson - DEFAULT_LONG, JSON
- //====================================================================================================
- @Test
- public void testDefaultLongJson() throws Exception {
- Class<?> f = CalendarLongSwap.class;
- WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
- ReaderParser p = new JsonParser().addPojoSwaps(f);
- doTest(s, p, true, "-2172116928000");
- }
-
- //====================================================================================================
- // testDefaultLongXml - DEFAULT_LONG, XML
- //====================================================================================================
- @Test
- public void testDefaultLongXml() throws Exception {
- Class<?> f = CalendarLongSwap.class;
- WriterSerializer s = new XmlSerializer.Sq().addPojoSwaps(f);
- ReaderParser p = new XmlParser().addPojoSwaps(f);
- doTest(s, p, true, "<number>-2172116928000</number>");
- }
-
- //====================================================================================================
- // testDefaultLongHtml - DEFAULT_LONG, HTML
- //====================================================================================================
- @Test
- public void testDefaultLongHtml() throws Exception {
- Class<?> f = CalendarLongSwap.class;
- WriterSerializer s = new HtmlSerializer().addPojoSwaps(f);
- ReaderParser p = new HtmlParser().addPojoSwaps(f);
- doTest(s, p, true, "<number>-2172116928000</number>");
- }
-
- //====================================================================================================
- // testDefaultLongUrlParam - DEFAULT_LONG, UON
- //====================================================================================================
- @Test
- public void testDefaultLongUon() throws Exception {
- Class<?> f = CalendarLongSwap.class;
- WriterSerializer s = UonSerializer.DEFAULT.clone().addPojoSwaps(f);
- ReaderParser p = new UonParser().addPojoSwaps(f);
- doTest(s, p, true, "-2172116928000");
- }
-
- //====================================================================================================
- // testDefaultLongUrlParam - DEFAULT_LONG, URL-ENCODING
- //====================================================================================================
- @Test
- public void testDefaultLongUrlEncoding() throws Exception {
- Class<?> f = CalendarLongSwap.class;
- WriterSerializer s = UrlEncodingSerializer.DEFAULT.clone().addPojoSwaps(f);
- ReaderParser p = new UrlEncodingParser().addPojoSwaps(f);
- doTest(s, p, true, "_value=-2172116928000");
- }
-
- //====================================================================================================
- // testDefaultLongRdfXml - DEFAULT_LONG, RDF/XML
- //====================================================================================================
- @Test
- public void testDefaultLongRdfXml() throws Exception {
- Class<?> f = CalendarLongSwap.class;
- WriterSerializer s = getRdfSerializer().addPojoSwaps(f);
- ReaderParser p = new RdfParser.Xml().addPojoSwaps(f);
- doTest(s, p, true, "<rdf:Description><j:value>-2172116928000</j:value></rdf:Description>");
- }
-
- //====================================================================================================
- // testDefaultMapJson - DEFAULT_MAP, JSON
- //====================================================================================================
- @Test
- public void testDefaultMapJson() throws Exception {
- Class<?> f = CalendarMapSwap.class;
- WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
- ReaderParser p = new JsonParser().addPojoSwaps(f);
- doTest(s, p, true, "{time:-2172116928000,timeZone:'PST'}");
- }
-
- //====================================================================================================
- // testDefaultMapXml - DEFAULT_MAP, XML
- //====================================================================================================
- @Test
- public void testDefaultMapXml() throws Exception {
- Class<?> f = CalendarMapSwap.class;
- WriterSerializer s = new XmlSerializer.Sq().addPojoSwaps(f);
- ReaderParser p = new XmlParser().addPojoSwaps(f);
- doTest(s, p, true, "<object><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></object>");
- }
-
- //====================================================================================================
- // testDefaultMapHtml - DEFAULT_MAP, HTML
- //====================================================================================================
- @Test
- public void testDefaultMapHtml() throws Exception {
- Class<?> f = CalendarMapSwap.class;
- WriterSerializer s = new HtmlSerializer.Sq().addPojoSwaps(f).setAddKeyValueTableHeaders(true);
- ReaderParser p = new HtmlParser().addPojoSwaps(f);
- doTest(s, p, true, "<table><tr><th>key</th><th>value</th></tr><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table>");
- }
-
- //====================================================================================================
- // testDefaultMapUrlParam - DEFAULT_MAP, UON
- //====================================================================================================
- @Test
- public void testDefaultMapUon() throws Exception {
- Class<?> f = CalendarMapSwap.class;
- WriterSerializer s = UonSerializer.DEFAULT.clone().addPojoSwaps(f);
- ReaderParser p = new UonParser().addPojoSwaps(f);
- doTest(s, p, true, "(time=-2172116928000,timeZone=PST)");
- }
-
- //====================================================================================================
- // testDefaultMapUrlParam - DEFAULT_MAP, URL-ENCODING
- //====================================================================================================
- @Test
- public void testDefaultMapUrlEncoding() throws Exception {
- Class<?> f = CalendarMapSwap.class;
- WriterSerializer s = UrlEncodingSerializer.DEFAULT.clone().addPojoSwaps(f);
- ReaderParser p = new UrlEncodingParser().addPojoSwaps(f);
- doTest(s, p, true, "time=-2172116928000&timeZone=PST");
- }
-
- //====================================================================================================
- // testDefaultMapRdfXml - DEFAULT_MAP, RDF/XML
- //====================================================================================================
- @Test
- public void testDefaultMapRdfXml() throws Exception {
- Class<?> f = CalendarMapSwap.class;
- WriterSerializer s = getRdfSerializer().addPojoSwaps(f);
- ReaderParser p = new RdfParser.Xml().addPojoSwaps(f);
- doTest(s, p, true, "<rdf:Description><jp:time>-2172116928000</jp:time><jp:timeZone>PST</jp:timeZone></rdf:Description>");
- }
-
- //====================================================================================================
- // testDefaultMediumJson - DEFAULT_MEDIUM, JSON
- //====================================================================================================
- @Test
- public void testDefaultMediumJson() throws Exception {
- Class<?> f = CalendarSwap.DateMedium.class;
- WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
- ReaderParser p = new JsonParser().addPojoSwaps(f);
- doTest(s, p, false, "'Mar 3, 1901'");
- }
-
- //====================================================================================================
- // testDefaultMediumXml - DEFAULT_MEDIUM, XML
- //====================================================================================================
- @Test
- public void testDefaultMediumXml() throws Exception {
- Class<?> f = CalendarSwap.DateMedium.class;
- WriterSerializer s = new XmlSerializer.Sq().addPojoSwaps(f);
- ReaderParser p = new XmlParser().addPojoSwaps(f);
- doTest(s, p, false, "<string>Mar 3, 1901</string>");
- }
-
- //====================================================================================================
- // testDefaultMediumHtml - DEFAULT_MEDIUM, HTML
- //====================================================================================================
- @Test
- public void testDefaultMediumHtml() throws Exception {
- Class<?> f = CalendarSwap.DateMedium.class;
- WriterSerializer s = new HtmlSerializer().addPojoSwaps(f);
- ReaderParser p = new HtmlParser().addPojoSwaps(f);
- doTest(s, p, false, "<string>Mar 3, 1901</string>");
- }
-
- //====================================================================================================
- // testDefaultMediumUrlParam - DEFAULT_MEDIUM, UON
- //====================================================================================================
- @Test
- public void testDefaultMediumUon() throws Exception {
- Class<?> f = CalendarSwap.DateMedium.class;
- WriterSerializer s = new UonSerializer.Encoding().addPojoSwaps(f);
- ReaderParser p = UonParser.DEFAULT_DECODING.clone().addPojoSwaps(f);
- doTest(s, p, false, "'Mar+3,+1901'");
- }
-
- //====================================================================================================
- // testDefaultMediumUrlParam - DEFAULT_MEDIUM, URL-ENCODING
- //====================================================================================================
- @Test
- public void testDefaultMediumUrlEncoding() throws Exception {
- Class<?> f = CalendarSwap.DateMedium.class;
- WriterSerializer s = new UrlEncodingSerializer().addPojoSwaps(f);
- ReaderParser p = UrlEncodingParser.DEFAULT.clone().addPojoSwaps(f);
- doTest(s, p, false, "_value='Mar+3,+1901'");
- }
-
- //====================================================================================================
- // testDefaultMediumRdfXml - DEFAULT_MEDIUM, RDF/XML
- //====================================================================================================
- @Test
- public void testDefaultMediumRdfXml() throws Exception {
- Class<?> f = CalendarSwap.DateMedium.class;
- WriterSerializer s = getRdfSerializer().addPojoSwaps(f);
- ReaderParser p = new RdfParser.Xml().addPojoSwaps(f);
- doTest(s, p, false, "<rdf:Description><j:value>Mar 3, 1901</j:value></rdf:Description>");
- }
-
//====================================================================================================
// Test 7a - BeanProperty.filter, JSON
//====================================================================================================
@@ -683,25 +284,4 @@ public class CalendarSwapTest {
this.d3 = d3;
}
}
-
- private void doTest(WriterSerializer s, ReaderParser p, boolean doTestTimeToo, String expected) throws Exception {
- Calendar d;
- String actual;
-
- SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
- sdf.setTimeZone(TimeZone.getTimeZone("PST"));
- actual = s.serialize(testDate);
- String a = (s instanceof RdfSerializer ? stripRdf(actual) : actual);
- assertEquals(expected, a);
- d = p.parse(actual, GregorianCalendar.class);
- d.setTimeZone(TimeZone.getTimeZone("PST"));
- assertEquals(1901, d.get(Calendar.YEAR));
- assertEquals(2, d.get(Calendar.MONTH));
-// assertEquals(3, d.get(Calendar.DATE));
- if (doTestTimeToo) {
- assertEquals(10, d.get(Calendar.HOUR));
- assertEquals(11, d.get(Calendar.MINUTE));
- assertEquals(12, d.get(Calendar.SECOND));
- }
- }
}
\ No newline at end of file
[2/2] incubator-juneau git commit: Add combo tests for CalendarSwap
class.
Posted by ja...@apache.org.
Add combo tests for CalendarSwap class.
Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/0d70804d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/0d70804d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/0d70804d
Branch: refs/heads/master
Commit: 0d70804d8d1fe5921cc0df1ada433f014fa373cf
Parents: c6b0a7b
Author: JamesBognar <ja...@apache.org>
Authored: Mon Feb 20 12:46:45 2017 -0500
Committer: JamesBognar <ja...@apache.org>
Committed: Mon Feb 20 12:46:45 2017 -0500
----------------------------------------------------------------------
.../test/java/org/apache/juneau/ComboTest.java | 626 +++++++++++++++++++
.../test/java/org/apache/juneau/TestUtils.java | 9 +-
.../java/org/apache/juneau/dto/ComboTest.java | 557 -----------------
.../apache/juneau/dto/html5/Html5ComboTest.java | 2 +-
.../dto/html5/Html5TemplateComboTest.java | 2 +-
.../transforms/CalendarSwapComboTest.java | 577 +++++++++++++++++
.../juneau/transforms/CalendarSwapTest.java | 420 -------------
7 files changed, 1211 insertions(+), 982 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0d70804d/juneau-core-test/src/test/java/org/apache/juneau/ComboTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/ComboTest.java b/juneau-core-test/src/test/java/org/apache/juneau/ComboTest.java
new file mode 100644
index 0000000..cb4b935
--- /dev/null
+++ b/juneau-core-test/src/test/java/org/apache/juneau/ComboTest.java
@@ -0,0 +1,626 @@
+// ***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file *
+// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file *
+// * to you 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 org.apache.juneau;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.IdentityHashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.juneau.html.HtmlParser;
+import org.apache.juneau.html.HtmlSerializer;
+import org.apache.juneau.jena.RdfParser;
+import org.apache.juneau.jena.RdfSerializer;
+import org.apache.juneau.json.JsonParser;
+import org.apache.juneau.json.JsonSerializer;
+import org.apache.juneau.msgpack.MsgPackParser;
+import org.apache.juneau.msgpack.MsgPackSerializer;
+import org.apache.juneau.parser.InputStreamParser;
+import org.apache.juneau.parser.Parser;
+import org.apache.juneau.parser.ReaderParser;
+import org.apache.juneau.serializer.OutputStreamSerializer;
+import org.apache.juneau.serializer.Serializer;
+import org.apache.juneau.serializer.WriterSerializer;
+import org.apache.juneau.urlencoding.UonParser;
+import org.apache.juneau.urlencoding.UonSerializer;
+import org.apache.juneau.urlencoding.UrlEncodingParser;
+import org.apache.juneau.urlencoding.UrlEncodingSerializer;
+import org.apache.juneau.xml.XmlParser;
+import org.apache.juneau.xml.XmlSerializer;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runners.MethodSorters;
+
+/**
+ * Superclass for tests that verify results against all supported content types.
+ */
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public abstract class ComboTest {
+
+ /* Parameter template */
+// {
+// "MyLabel",
+// myInput,
+// /* Json */ "xxx",
+// /* JsonT */ "xxx",
+// /* JsonR */ "xxx",
+// /* Xml */ "xxx",
+// /* XmlT */ "xxx",
+// /* XmlR */ "xxx",
+// /* XmlNs */ "xxx",
+// /* Html */ "xxx",
+// /* HtmlT */ "xxx",
+// /* HtmlR */ "xxx",
+// /* Uon */ "xxx",
+// /* UonT */ "xxx",
+// /* UonR */ "xxx",
+// /* UrlEnc */ "xxx",
+// /* UrlEncT */ "xxx",
+// /* UrlEncR */ "xxx",
+// /* MsgPack */ "xxx",
+// /* MsgPackT */ "xxx",
+// /* RdfXml */ "xxx",
+// /* RdfXmlT */ "xxx",
+// /* RdfXmlR */ "xxx",
+// },
+
+ private final String
+ label,
+ oJson, oJsonT, oJsonR,
+ oXml, oXmlT, oXmlR, oXmlNs,
+ oHtml, oHtmlT, oHtmlR,
+ oUon, oUonT, oUonR,
+ oUrlEncoding, oUrlEncodingT, oUrlEncodingR,
+ oMsgPack, oMsgPackT,
+ oRdfXml, oRdfXmlT, oRdfXmlR;
+ private final Object in;
+
+ // These are the names of all the tests.
+ // You can comment out the names here to skip them.
+ private static final String[] runTests = {
+ "serializeJson",
+ "parseJson",
+ "serializeJsonT",
+ "parseJsonT",
+ "serializeJsonR",
+ "parseJsonR",
+ "serializeXml",
+ "parseXml",
+ "serializeXmlT",
+ "parseXmlT",
+ "serializeXmlR",
+ "parseXmlR",
+ "serializeXmlNs",
+ "parseXmlNs",
+ "serializeHtml",
+ "parseHtml",
+ "serializeHtmlT",
+ "parseHtmlT",
+ "serializeHtmlR",
+ "parseHtmlR",
+ "serializeUon",
+ "parseUon",
+ "serializeUonT",
+ "parseUonT",
+ "serializeUonR",
+ "parseUonR",
+ "serializeUrlEncoding",
+ "parseUrlEncoding",
+ "serializeUrlEncodingT",
+ "parseUrlEncodingT",
+ "serializeUrlEncodingR",
+ "parseUrlEncodingR",
+ "serializeMsgPack",
+ "parseMsgPack",
+ "parseMsgPackJsonEquivalency",
+ "serializeMsgPackT",
+ "parseMsgPackT",
+ "parseMsgPackTJsonEquivalency",
+ "serializeRdfXml",
+ "parseRdfXml",
+ "serializeRdfXmlT",
+ "parseRdfXmlT",
+ "serializeRdfXmlR",
+ "parseRdfXmlR",
+ };
+
+ private static final Set<String> runTestsSet = new HashSet<String>(Arrays.asList(runTests));
+
+ private final boolean SKIP_RDF_TESTS = Boolean.getBoolean("skipRdfTests");
+
+ private Map<Serializer,Serializer> serializerMap = new IdentityHashMap<Serializer,Serializer>();
+ private Map<Parser,Parser> parserMap = new IdentityHashMap<Parser,Parser>();
+
+ public ComboTest(
+ String label,
+ Object in,
+ String oJson, String oJsonT, String oJsonR,
+ String oXml, String oXmlT, String oXmlR, String oXmlNs,
+ String oHtml, String oHtmlT, String oHtmlR,
+ String oUon, String oUonT, String oUonR,
+ String oUrlEncoding, String oUrlEncodingT, String oUrlEncodingR,
+ String oMsgPack, String oMsgPackT,
+ String oRdfXml, String oRdfXmlT, String oRdfXmlR
+ ) {
+ this.label = label;
+ this.in = in;
+ this.oJson = oJson; this.oJsonT = oJsonT; this.oJsonR = oJsonR;
+ this.oXml = oXml; this.oXmlT = oXmlT; this.oXmlR = oXmlR; this.oXmlNs = oXmlNs;
+ this.oHtml = oHtml; this.oHtmlT = oHtmlT; this.oHtmlR = oHtmlR;
+ this.oUon = oUon; this.oUonT = oUonT; this.oUonR = oUonR;
+ this.oUrlEncoding = oUrlEncoding; this.oUrlEncodingT = oUrlEncodingT; this.oUrlEncodingR = oUrlEncodingR;
+ this.oMsgPack = oMsgPack; this.oMsgPackT = oMsgPackT;
+ this.oRdfXml = oRdfXml; this.oRdfXmlT = oRdfXmlT; this.oRdfXmlR = oRdfXmlR;
+ }
+
+ private Serializer getSerializer(Serializer s) throws Exception {
+ Serializer s2 = serializerMap.get(s);
+ if (s2 == null) {
+ s2 = applySettings(s);
+ serializerMap.put(s, s2);
+ }
+ return s2;
+ }
+
+ private Parser getParser(Parser p) throws Exception {
+ Parser p2 = parserMap.get(p);
+ if (p2 == null) {
+ p2 = applySettings(p);
+ parserMap.put(p, p2);
+ }
+ return p2;
+ }
+
+ private void testSerialize(String testName, Serializer s, String expected) throws Exception {
+ try {
+ s = getSerializer(s);
+
+ boolean isRdf = s instanceof RdfSerializer;
+
+ if ((isRdf && SKIP_RDF_TESTS) || expected.isEmpty() || ! runTestsSet.contains(testName) ) {
+ System.err.println(label + "/" + testName + " for "+s.getClass().getSimpleName()+" skipped.");
+ return;
+ }
+
+ String r = s.isWriterSerializer() ? ((WriterSerializer)s).serialize(in) : ((OutputStreamSerializer)s).serializeToHex(in);
+
+ // Can't control RdfSerializer output well, so manually remove namespace declarations
+ // double-quotes with single-quotes, and spaces with tabs.
+ // Also because RDF sucks really bad and can't be expected to produce consistent testable results,
+ // we must also do an expensive sort-then-compare operation to verify the results.
+ if (isRdf)
+ r = r.replaceAll("<rdf:RDF[^>]*>", "<rdf:RDF>").replace('"', '\'');
+
+ // Specifying "xxx" in the expected results will spit out what we should populate the field with.
+ if (expected.equals("xxx")) {
+ System.out.println(label + "/" + testName + "=\n" + r.replaceAll("\n", "\\\\n").replaceAll("\t", "\\\\t")); // NOT DEBUG
+ System.out.println(r);
+ }
+
+ if (isRdf)
+ TestUtils.assertEqualsAfterSort(expected, r, "{0}/{1} parse-normal failed", label, testName);
+ else
+ TestUtils.assertEquals(expected, r, "{0}/{1} parse-normal failed", label, testName);
+
+ } catch (AssertionError e) {
+ throw e;
+ } catch (Exception e) {
+ throw new AssertionError(label + "/" + testName + " failed. exception=" + e.getLocalizedMessage());
+ }
+ }
+
+ private void testParse(String testName, Serializer s, Parser p, String expected) throws Exception {
+ try {
+ s = getSerializer(s);
+ p = getParser(p);
+
+ boolean isRdf = s instanceof RdfSerializer;
+
+ if ((isRdf && SKIP_RDF_TESTS) || expected.isEmpty() || ! runTestsSet.contains(testName) ) {
+ System.err.println(label + "/" + testName + " for "+s.getClass().getSimpleName()+" skipped.");
+ return;
+ }
+
+ String r = s.isWriterSerializer() ? ((WriterSerializer)s).serialize(in) : ((OutputStreamSerializer)s).serializeToHex(in);
+ Object o = p.parse(r, in == null ? Object.class : in.getClass());
+ r = s.isWriterSerializer() ? ((WriterSerializer)s).serialize(o) : ((OutputStreamSerializer)s).serializeToHex(o);
+
+ if (isRdf)
+ r = r.replaceAll("<rdf:RDF[^>]*>", "<rdf:RDF>").replace('"', '\'');
+
+ if (isRdf)
+ TestUtils.assertEqualsAfterSort(expected, r, "{0}/{1} parse-normal failed", label, testName);
+ else
+ TestUtils.assertEquals(expected, r, "{0}/{1} parse-normal failed", label, testName);
+
+ } catch (AssertionError e) {
+ throw e;
+ } catch (Exception e) {
+ throw new Exception(label + "/" + testName + " failed.", e);
+ }
+ }
+
+ private void testParseJsonEquivalency(String testName, OutputStreamSerializer s, InputStreamParser p, String expected) throws Exception {
+ try {
+ s = (OutputStreamSerializer)getSerializer(s);
+ p = (InputStreamParser)getParser(p);
+ WriterSerializer sJson = (WriterSerializer)getSerializer(this.sJson);
+
+ String r = s.serializeToHex(in);
+ Object o = p.parse(r, in == null ? Object.class : in.getClass());
+ r = sJson.serialize(o);
+ assertEquals(label + "/" + testName + " parse-normal failed on JSON equivalency", expected, r);
+ } catch (AssertionError e) {
+ throw e;
+ } catch (Exception e) {
+ throw new Exception(label + "/" + testName + " failed.", e);
+ }
+ }
+
+ protected Serializer applySettings(Serializer s) throws Exception {
+ return s;
+ }
+
+ protected Parser applySettings(Parser p) throws Exception {
+ return p;
+ }
+
+ //--------------------------------------------------------------------------------
+ // JSON
+ //--------------------------------------------------------------------------------
+ WriterSerializer sJson = JsonSerializer.DEFAULT_LAX;
+ ReaderParser pJson = JsonParser.DEFAULT;
+
+ @Test
+ public void serializeJson() throws Exception {
+ testSerialize("serializeJson", sJson, oJson);
+ }
+
+ @Test
+ public void parseJson() throws Exception {
+ testParse("parseJson", sJson, pJson, oJson);
+ }
+
+ //--------------------------------------------------------------------------------
+ // JSON - 't' property
+ //--------------------------------------------------------------------------------
+ WriterSerializer sJsonT = JsonSerializer.DEFAULT_LAX.clone().setBeanTypePropertyName("t");
+ ReaderParser pJsonT = JsonParser.DEFAULT.clone().setBeanTypePropertyName("t");
+
+ @Test
+ public void serializeJsonT() throws Exception {
+ testSerialize("serializeJsonT", sJsonT, oJsonT);
+ }
+
+ @Test
+ public void parseJsonT() throws Exception {
+ testParse("parseJsonT", sJsonT, pJsonT, oJsonT);
+ }
+
+ //--------------------------------------------------------------------------------
+ // JSON - Readable
+ //--------------------------------------------------------------------------------
+ WriterSerializer sJsonR = JsonSerializer.DEFAULT_LAX_READABLE;
+ ReaderParser pJsonR = JsonParser.DEFAULT;
+
+ @Test
+ public void serializeJsonR() throws Exception {
+ testSerialize("serializeJsonR", sJsonR, oJsonR);
+ }
+
+ @Test
+ public void parseJsonR() throws Exception {
+ testParse("parseJsonR", sJsonR, pJsonR, oJsonR);
+ }
+
+ //--------------------------------------------------------------------------------
+ // XML
+ //--------------------------------------------------------------------------------
+ WriterSerializer sXml = XmlSerializer.DEFAULT_SQ;
+ ReaderParser pXml = XmlParser.DEFAULT;
+
+ @Test
+ public void serializeXml() throws Exception {
+ testSerialize("serializeXml", sXml, oXml);
+ }
+
+ @Test
+ public void parseXml() throws Exception {
+ testParse("parseXml", sXml, pXml, oXml);
+ }
+
+ //--------------------------------------------------------------------------------
+ // XML - 't' property
+ //--------------------------------------------------------------------------------
+ WriterSerializer sXmlT = XmlSerializer.DEFAULT_SQ.clone().setBeanTypePropertyName("t");
+ ReaderParser pXmlT = XmlParser.DEFAULT.clone().setBeanTypePropertyName("t");
+
+ @Test
+ public void serializeXmlT() throws Exception {
+ testSerialize("serializeXmlT", sXmlT, oXmlT);
+ }
+
+ @Test
+ public void parseXmlT() throws Exception {
+ testParse("parseXmlT", sXmlT, pXmlT, oXmlT);
+ }
+
+ //--------------------------------------------------------------------------------
+ // XML - Readable
+ //--------------------------------------------------------------------------------
+ WriterSerializer sXmlR = XmlSerializer.DEFAULT_SQ_READABLE;
+ ReaderParser pXmlR = XmlParser.DEFAULT;
+
+ @Test
+ public void serializeXmlR() throws Exception {
+ testSerialize("serializeXmlR", sXmlR, oXmlR);
+ }
+
+ @Test
+ public void parseXmlR() throws Exception {
+ testParse("parseXmlR", sXmlR, pXmlR, oXmlR);
+ }
+
+ //--------------------------------------------------------------------------------
+ // XML - Namespaces
+ //--------------------------------------------------------------------------------
+ WriterSerializer sXmlNs = XmlSerializer.DEFAULT_NS_SQ;
+ ReaderParser pXmlNs = XmlParser.DEFAULT;
+
+ @Test
+ public void serializeXmlNs() throws Exception {
+ testSerialize("serializeXmlNs", sXmlNs, oXmlNs);
+ }
+
+ @Test
+ public void parseXmlNs() throws Exception {
+ testParse("parseXmlNs", sXmlNs, pXmlNs, oXmlNs);
+ }
+
+ //--------------------------------------------------------------------------------
+ // HTML
+ //--------------------------------------------------------------------------------
+ WriterSerializer sHtml = HtmlSerializer.DEFAULT_SQ;
+ ReaderParser pHtml = HtmlParser.DEFAULT;
+
+ @Test
+ public void serializeHtml() throws Exception {
+ testSerialize("serializeHtml", sHtml, oHtml);
+ }
+
+ @Test
+ public void parseHtml() throws Exception {
+ testParse("parseHtml", sHtml, pHtml, oHtml);
+ }
+
+ //--------------------------------------------------------------------------------
+ // HTML - 't' property
+ //--------------------------------------------------------------------------------
+ WriterSerializer sHtmlT = HtmlSerializer.DEFAULT_SQ.clone().setBeanTypePropertyName("t");
+ ReaderParser pHtmlT = HtmlParser.DEFAULT.clone().setBeanTypePropertyName("t");
+
+ @Test
+ public void serializeHtmlT() throws Exception {
+ testSerialize("serializeHtmlT", sHtmlT, oHtmlT);
+ }
+
+ @Test
+ public void parseHtmlT() throws Exception {
+ testParse("parseHtmlT", sHtmlT, pHtmlT, oHtmlT);
+ }
+
+ //--------------------------------------------------------------------------------
+ // HTML - Readable
+ //--------------------------------------------------------------------------------
+ WriterSerializer sHtmlR = HtmlSerializer.DEFAULT_SQ_READABLE;
+ ReaderParser pHtmlR = HtmlParser.DEFAULT;
+
+ @Test
+ public void serializeHtmlR() throws Exception {
+ testSerialize("serializeHtmlR", sHtmlR, oHtmlR);
+ }
+
+ @Test
+ public void parseHtmlR() throws Exception {
+ testParse("parseHtmlR", sHtmlR, pHtmlR, oHtmlR);
+ }
+
+ //--------------------------------------------------------------------------------
+ // UON
+ //--------------------------------------------------------------------------------
+ WriterSerializer sUon = UonSerializer.DEFAULT;
+ ReaderParser pUon = UonParser.DEFAULT;
+
+ @Test
+ public void serializeUon() throws Exception {
+ testSerialize("serializeUon", sUon, oUon);
+ }
+
+ @Test
+ public void parseUon() throws Exception {
+ testParse("parseUon", sUon, pUon, oUon);
+ }
+
+ //--------------------------------------------------------------------------------
+ // UON - 't' property
+ //--------------------------------------------------------------------------------
+ WriterSerializer sUonT = UonSerializer.DEFAULT.clone().setBeanTypePropertyName("t");
+ ReaderParser pUonT = UonParser.DEFAULT.clone().setBeanTypePropertyName("t");
+
+ @Test
+ public void serializeUonT() throws Exception {
+ testSerialize("serializeUonT", sUonT, oUonT);
+ }
+
+ @Test
+ public void parseUonT() throws Exception {
+ testParse("parseUonT", sUonT, pUonT, oUonT);
+ }
+
+ //--------------------------------------------------------------------------------
+ // UON - Readable
+ //--------------------------------------------------------------------------------
+ WriterSerializer sUonR = UonSerializer.DEFAULT_READABLE;
+ ReaderParser pUonR = UonParser.DEFAULT;
+
+ @Test
+ public void serializeUonR() throws Exception {
+ testSerialize("serializeUonR", sUonR, oUonR);
+ }
+
+ @Test
+ public void parseUonR() throws Exception {
+ testParse("parseUonR", sUonR, pUonR, oUonR);
+ }
+
+ //--------------------------------------------------------------------------------
+ // UrlEncoding
+ //--------------------------------------------------------------------------------
+ WriterSerializer sUrlEncoding = UrlEncodingSerializer.DEFAULT;
+ ReaderParser pUrlEncoding = UrlEncodingParser.DEFAULT;
+
+ @Test
+ public void serializeUrlEncoding() throws Exception {
+ testSerialize("serializeUrlEncoding", sUrlEncoding, oUrlEncoding);
+ }
+
+ @Test
+ public void parseUrlEncoding() throws Exception {
+ testParse("parseUrlEncoding", sUrlEncoding, pUrlEncoding, oUrlEncoding);
+ }
+
+ //--------------------------------------------------------------------------------
+ // UrlEncoding - 't' property
+ //--------------------------------------------------------------------------------
+ WriterSerializer sUrlEncodingT = UrlEncodingSerializer.DEFAULT.clone().setBeanTypePropertyName("t");
+ ReaderParser pUrlEncodingT = UrlEncodingParser.DEFAULT.clone().setBeanTypePropertyName("t");
+
+ @Test
+ public void serializeUrlEncodingT() throws Exception {
+ testSerialize("serializeUrlEncodingT", sUrlEncodingT, oUrlEncodingT);
+ }
+
+ @Test
+ public void parseUrlEncodingT() throws Exception {
+ testParse("parseUrlEncodingT", sUrlEncodingT, pUrlEncodingT, oUrlEncodingT);
+ }
+
+ //--------------------------------------------------------------------------------
+ // UrlEncoding - Readable
+ //--------------------------------------------------------------------------------
+ WriterSerializer sUrlEncodingR = UrlEncodingSerializer.DEFAULT_READABLE;
+ ReaderParser pUrlEncodingR = UrlEncodingParser.DEFAULT;
+
+ @Test
+ public void serializeUrlEncodingR() throws Exception {
+ testSerialize("serializeUrlEncodingR", sUrlEncodingR, oUrlEncodingR);
+ }
+
+ @Test
+ public void parseUrlEncodingR() throws Exception {
+ testParse("parseUrlEncodingR", sUrlEncodingR, pUrlEncodingR, oUrlEncodingR);
+ }
+
+ //--------------------------------------------------------------------------------
+ // MsgPack
+ //--------------------------------------------------------------------------------
+ OutputStreamSerializer sMsgPack = MsgPackSerializer.DEFAULT;
+ InputStreamParser pMsgPack = MsgPackParser.DEFAULT;
+
+ @Test
+ public void serializeMsgPack() throws Exception {
+ testSerialize("serializeMsgPack", sMsgPack, oMsgPack);
+ }
+
+ @Test
+ public void parseMsgPack() throws Exception {
+ testParse("parseMsgPack", sMsgPack, pMsgPack, oMsgPack);
+ }
+
+ @Test
+ public void parseMsgPackJsonEquivalency() throws Exception {
+ testParseJsonEquivalency("parseMsgPackJsonEquivalency", sMsgPack, pMsgPack, oJson);
+ }
+
+ //--------------------------------------------------------------------------------
+ // MsgPack - 't' property
+ //--------------------------------------------------------------------------------
+ OutputStreamSerializer sMsgPackT = MsgPackSerializer.DEFAULT.clone().setBeanTypePropertyName("t");
+ InputStreamParser pMsgPackT = MsgPackParser.DEFAULT.clone().setBeanTypePropertyName("t");
+
+ @Test
+ public void serializeMsgPackT() throws Exception {
+ testSerialize("serializeMsgPackT", sMsgPackT, oMsgPackT);
+ }
+
+ @Test
+ public void parseMsgPackT() throws Exception {
+ testParse("parseMsgPackT", sMsgPackT, pMsgPackT, oMsgPackT);
+ }
+
+ @Test
+ public void parseMsgPackTJsonEquivalency() throws Exception {
+ testParseJsonEquivalency("parseMsgPackTJsonEquivalency", sMsgPackT, pMsgPackT, oJson);
+ }
+
+ //--------------------------------------------------------------------------------
+ // RdfXml
+ //--------------------------------------------------------------------------------
+ WriterSerializer sRdfXml = RdfSerializer.DEFAULT_XMLABBREV;
+ ReaderParser pRdfXml = RdfParser.DEFAULT_XML;
+
+ @Test
+ public void serializeRdfXml() throws Exception {
+ testSerialize("serializeRdfXml", sRdfXml, oRdfXml);
+ }
+
+ @Test
+ public void parseRdfXml() throws Exception {
+ testParse("parseRdfXml", sRdfXml, pRdfXml, oRdfXml);
+ }
+
+ //--------------------------------------------------------------------------------
+ // RdfXml - 't' property
+ //--------------------------------------------------------------------------------
+ WriterSerializer sRdfXmlT = RdfSerializer.DEFAULT_XMLABBREV.clone().setBeanTypePropertyName("t");
+ ReaderParser pRdfXmlT = RdfParser.DEFAULT_XML.clone().setBeanTypePropertyName("t");
+
+ @Test
+ public void serializeRdfXmlT() throws Exception {
+ testSerialize("serializeRdfXmlT", sRdfXmlT, oRdfXmlT);
+ }
+
+ @Test
+ public void parseRdfXmlT() throws Exception {
+ testParse("parseRdfXmlT", sRdfXmlT, pRdfXmlT, oRdfXmlT);
+ }
+
+ //--------------------------------------------------------------------------------
+ // RdfXml - Readable
+ //--------------------------------------------------------------------------------
+ WriterSerializer sRdfXmlR = RdfSerializer.DEFAULT_XMLABBREV.clone().setUseWhitespace(true);
+ ReaderParser pRdfXmlR = RdfParser.DEFAULT_XML;
+
+ @Test
+ public void serializeRdfXmlR() throws Exception {
+ testSerialize("serializeRdfXmlR", sRdfXmlR, oRdfXmlR);
+ }
+
+ @Test
+ public void parseRdfXmlR() throws Exception {
+ testParse("parseRdfXmlR", sRdfXmlR, pRdfXmlR, oRdfXmlR);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0d70804d/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java b/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
index 6ee3a41..a94fcca 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
@@ -472,18 +472,21 @@ public class TestUtils {
String[] e = expected.trim().split("\n"), a = actual.trim().split("\n");
if (e.length != a.length)
- throw new AssertionError(MessageFormat.format(msg + "---expected---\n"+expected+"\n---actual---\n"+actual+"\n", args));
+ throw new ComparisonFailure(MessageFormat.format(msg, args), expected, actual);
Arrays.sort(e);
Arrays.sort(a);
for (int i = 0; i < e.length; i++)
if (! e[i].equals(a[i]))
- throw new AssertionError(MessageFormat.format(msg + "---expected---\n"+expected+"\n---actual---\n"+actual+"\n", args));
+ throw new ComparisonFailure(MessageFormat.format(msg, args), expected, actual);
}
+ /**
+ * Same as {@link Assert#assertEquals(String,String,String) except takes in a MessageFormat-style message.
+ */
public static void assertEquals(String expected, String actual, String msg, Object...args) {
if (! StringUtils.isEquals(expected, actual))
- throw new AssertionError(MessageFormat.format(msg + "---expected---\n"+expected+"\n---actual---\n"+actual+"\n", args));
+ throw new ComparisonFailure(MessageFormat.format(msg, args), expected, actual);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0d70804d/juneau-core-test/src/test/java/org/apache/juneau/dto/ComboTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/dto/ComboTest.java b/juneau-core-test/src/test/java/org/apache/juneau/dto/ComboTest.java
deleted file mode 100644
index 57061d5..0000000
--- a/juneau-core-test/src/test/java/org/apache/juneau/dto/ComboTest.java
+++ /dev/null
@@ -1,557 +0,0 @@
-// ***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file *
-// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file *
-// * to you 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 org.apache.juneau.dto;
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.juneau.TestUtils;
-import org.apache.juneau.html.HtmlParser;
-import org.apache.juneau.html.HtmlSerializer;
-import org.apache.juneau.jena.RdfParser;
-import org.apache.juneau.jena.RdfSerializer;
-import org.apache.juneau.json.JsonParser;
-import org.apache.juneau.json.JsonSerializer;
-import org.apache.juneau.msgpack.MsgPackParser;
-import org.apache.juneau.msgpack.MsgPackSerializer;
-import org.apache.juneau.parser.InputStreamParser;
-import org.apache.juneau.parser.Parser;
-import org.apache.juneau.parser.ReaderParser;
-import org.apache.juneau.serializer.OutputStreamSerializer;
-import org.apache.juneau.serializer.Serializer;
-import org.apache.juneau.serializer.WriterSerializer;
-import org.apache.juneau.urlencoding.UonParser;
-import org.apache.juneau.urlencoding.UonSerializer;
-import org.apache.juneau.urlencoding.UrlEncodingParser;
-import org.apache.juneau.urlencoding.UrlEncodingSerializer;
-import org.apache.juneau.xml.XmlParser;
-import org.apache.juneau.xml.XmlSerializer;
-import org.junit.Test;
-
-/**
- * Superclass for tests that verify results against all supported content types.
- */
-public abstract class ComboTest {
-
- private final String
- label,
- oJson, oJsonT, oJsonR,
- oXml, oXmlT, oXmlR, oXmlNs,
- oHtml, oHtmlT, oHtmlR,
- oUon, oUonT, oUonR,
- oUrlEncoding, oUrlEncodingT, oUrlEncodingR,
- oMsgPack, oMsgPackT,
- oRdfXml, oRdfXmlT, oRdfXmlR;
- private final Object in;
-
- // These are the names of all the tests.
- // You can comment out the names here to skip them.
- private static final String[] runTests = {
- "serializeJson",
- "parseJson",
- "serializeJsonT",
- "parseJsonT",
- "serializeJsonR",
- "parseJsonR",
- "serializeXml",
- "parseXml",
- "serializeXmlT",
- "parseXmlT",
- "serializeXmlR",
- "parseXmlR",
- "serializeXmlNs",
- "parseXmlNs",
- "serializeHtml",
- "parseHtml",
- "serializeHtmlT",
- "parseHtmlT",
- "serializeHtmlR",
- "parseHtmlR",
- "serializeUon",
- "parseUon",
- "serializeUonT",
- "parseUonT",
- "serializeUonR",
- "parseUonR",
- "serializeUrlEncoding",
- "parseUrlEncoding",
- "serializeUrlEncodingT",
- "parseUrlEncodingT",
- "serializeUrlEncodingR",
- "parseUrlEncodingR",
- "serializeMsgPack",
- "parseMsgPack",
- "parseMsgPackJsonEquivalency",
- "serializeMsgPackT",
- "parseMsgPackT",
- "parseMsgPackTJsonEquivalency",
- "serializeRdfXml",
- "parseRdfXml",
- "serializeRdfXmlT",
- "parseRdfXmlT",
- "serializeRdfXmlR",
- "parseRdfXmlR",
- };
-
- private static final Set<String> runTestsSet = new HashSet<String>(Arrays.asList(runTests));
-
- private final boolean SKIP_RDF_TESTS = Boolean.getBoolean("skipRdfTests");
-
- public ComboTest(
- String label,
- Object in,
- String oJson, String oJsonT, String oJsonR,
- String oXml, String oXmlT, String oXmlR, String oXmlNs,
- String oHtml, String oHtmlT, String oHtmlR,
- String oUon, String oUonT, String oUonR,
- String oUrlEncoding, String oUrlEncodingT, String oUrlEncodingR,
- String oMsgPack, String oMsgPackT,
- String oRdfXml, String oRdfXmlT, String oRdfXmlR
- ) {
- this.label = label;
- this.in = in;
- this.oJson = oJson; this.oJsonT = oJsonT; this.oJsonR = oJsonR;
- this.oXml = oXml; this.oXmlT = oXmlT; this.oXmlR = oXmlR; this.oXmlNs = oXmlNs;
- this.oHtml = oHtml; this.oHtmlT = oHtmlT; this.oHtmlR = oHtmlR;
- this.oUon = oUon; this.oUonT = oUonT; this.oUonR = oUonR;
- this.oUrlEncoding = oUrlEncoding; this.oUrlEncodingT = oUrlEncodingT; this.oUrlEncodingR = oUrlEncodingR;
- this.oMsgPack = oMsgPack; this.oMsgPackT = oMsgPackT;
- this.oRdfXml = oRdfXml; this.oRdfXmlT = oRdfXmlT; this.oRdfXmlR = oRdfXmlR;
- }
-
- private void testSerialize(String testName, Serializer s, String expected) throws Exception {
- try {
- boolean isRdf = s instanceof RdfSerializer;
-
- if ((isRdf && SKIP_RDF_TESTS) || expected.isEmpty() || ! runTestsSet.contains(testName) ) {
- System.err.println(label + "/" + testName + " for "+s.getClass().getSimpleName()+" skipped.");
- return;
- }
-
- String r = s.isWriterSerializer() ? ((WriterSerializer)s).serialize(in) : ((OutputStreamSerializer)s).serializeToHex(in);
-
- // Can't control RdfSerializer output well, so manually remove namespace declarations
- // double-quotes with single-quotes, and spaces with tabs.
- // Also because RDF sucks really bad and can't be expected to produce consistent testable results,
- // we must also do an expensive sort-then-compare operation to verify the results.
- if (isRdf)
- r = r.replaceAll("<rdf:RDF[^>]*>", "<rdf:RDF>").replace('"', '\'');
-
- // Specifying "xxx" in the expected results will spit out what we should populate the field with.
- if (expected.equals("xxx")) {
- System.out.println(label + "/" + testName + "=\n" + r.replaceAll("\n", "\\\\n").replaceAll("\t", "\\\\t")); // NOT DEBUG
- System.out.println(r);
- }
-
- if (isRdf)
- TestUtils.assertEqualsAfterSort(expected, r, "{0}/{1} parse-normal failed", label, testName);
- else
- TestUtils.assertEquals(expected, r, "{0}/{1} parse-normal failed", label, testName);
-
- } catch (AssertionError e) {
- throw e;
- } catch (Exception e) {
- throw new AssertionError(label + "/" + testName + " failed. exception=" + e.getLocalizedMessage());
- }
- }
-
- private void testParse(String testName, Serializer s, Parser p, String expected) throws Exception {
- try {
- boolean isRdf = s instanceof RdfSerializer;
-
- if ((isRdf && SKIP_RDF_TESTS) || expected.isEmpty() || ! runTestsSet.contains(testName) ) {
- System.err.println(label + "/" + testName + " for "+s.getClass().getSimpleName()+" skipped.");
- return;
- }
-
- String r = s.isWriterSerializer() ? ((WriterSerializer)s).serialize(in) : ((OutputStreamSerializer)s).serializeToHex(in);
- Object o = p.parse(r, in == null ? Object.class : in.getClass());
- r = s.isWriterSerializer() ? ((WriterSerializer)s).serialize(o) : ((OutputStreamSerializer)s).serializeToHex(o);
-
- if (isRdf)
- r = r.replaceAll("<rdf:RDF[^>]*>", "<rdf:RDF>").replace('"', '\'');
-
- if (isRdf)
- TestUtils.assertEqualsAfterSort(expected, r, "{0}/{1} parse-normal failed", label, testName);
- else
- TestUtils.assertEquals(expected, r, "{0}/{1} parse-normal failed", label, testName);
-
- } catch (AssertionError e) {
- throw e;
- } catch (Exception e) {
- throw new Exception(label + "/" + testName + " failed.", e);
- }
- }
-
- private void testParseJsonEquivalency(String testName, OutputStreamSerializer s, InputStreamParser p, String expected) throws Exception {
- try {
- String r = s.serializeToHex(in);
- Object o = p.parse(r, in == null ? Object.class : in.getClass());
- r = sJson.serialize(o);
- assertEquals(label + "/" + testName + " parse-normal failed on JSON equivalency", expected, r);
- } catch (AssertionError e) {
- throw e;
- } catch (Exception e) {
- throw new Exception(label + "/" + testName + " failed.", e);
- }
- }
-
- //--------------------------------------------------------------------------------
- // JSON
- //--------------------------------------------------------------------------------
- WriterSerializer sJson = JsonSerializer.DEFAULT_LAX;
- ReaderParser pJson = JsonParser.DEFAULT;
-
- @Test
- public void serializeJson() throws Exception {
- testSerialize("serializeJson", sJson, oJson);
- }
-
- @Test
- public void parseJson() throws Exception {
- testParse("parseJson", sJson, pJson, oJson);
- }
-
- //--------------------------------------------------------------------------------
- // JSON - 't' property
- //--------------------------------------------------------------------------------
- WriterSerializer sJsonT = JsonSerializer.DEFAULT_LAX.clone().setBeanTypePropertyName("t");
- ReaderParser pJsonT = JsonParser.DEFAULT.clone().setBeanTypePropertyName("t");
-
- @Test
- public void serializeJsonT() throws Exception {
- testSerialize("serializeJsonT", sJsonT, oJsonT);
- }
-
- @Test
- public void parseJsonT() throws Exception {
- testParse("parseJsonT", sJsonT, pJsonT, oJsonT);
- }
-
- //--------------------------------------------------------------------------------
- // JSON - Readable
- //--------------------------------------------------------------------------------
- WriterSerializer sJsonR = JsonSerializer.DEFAULT_LAX_READABLE;
- ReaderParser pJsonR = JsonParser.DEFAULT;
-
- @Test
- public void serializeJsonR() throws Exception {
- testSerialize("serializeJsonR", sJsonR, oJsonR);
- }
-
- @Test
- public void parseJsonR() throws Exception {
- testParse("parseJsonR", sJsonR, pJsonR, oJsonR);
- }
-
- //--------------------------------------------------------------------------------
- // XML
- //--------------------------------------------------------------------------------
- WriterSerializer sXml = XmlSerializer.DEFAULT_SQ;
- ReaderParser pXml = XmlParser.DEFAULT;
-
- @Test
- public void serializeXml() throws Exception {
- testSerialize("serializeXml", sXml, oXml);
- }
-
- @Test
- public void parseXml() throws Exception {
- testParse("parseXml", sXml, pXml, oXml);
- }
-
- //--------------------------------------------------------------------------------
- // XML - 't' property
- //--------------------------------------------------------------------------------
- WriterSerializer sXmlT = XmlSerializer.DEFAULT_SQ.clone().setBeanTypePropertyName("t");
- ReaderParser pXmlT = XmlParser.DEFAULT.clone().setBeanTypePropertyName("t");
-
- @Test
- public void serializeXmlT() throws Exception {
- testSerialize("serializeXmlT", sXmlT, oXmlT);
- }
-
- @Test
- public void parseXmlT() throws Exception {
- testParse("parseXmlT", sXmlT, pXmlT, oXmlT);
- }
-
- //--------------------------------------------------------------------------------
- // XML - Readable
- //--------------------------------------------------------------------------------
- WriterSerializer sXmlR = XmlSerializer.DEFAULT_SQ_READABLE;
- ReaderParser pXmlR = XmlParser.DEFAULT;
-
- @Test
- public void serializeXmlR() throws Exception {
- testSerialize("serializeXmlR", sXmlR, oXmlR);
- }
-
- @Test
- public void parseXmlR() throws Exception {
- testParse("parseXmlR", sXmlR, pXmlR, oXmlR);
- }
-
- //--------------------------------------------------------------------------------
- // XML - Namespaces
- //--------------------------------------------------------------------------------
- WriterSerializer sXmlNs = XmlSerializer.DEFAULT_NS_SQ;
- ReaderParser pXmlNs = XmlParser.DEFAULT;
-
- @Test
- public void serializeXmlNs() throws Exception {
- testSerialize("serializeXmlNs", sXmlNs, oXmlNs);
- }
-
- @Test
- public void parseXmlNs() throws Exception {
- testParse("parseXmlNs", sXmlNs, pXmlNs, oXmlNs);
- }
-
- //--------------------------------------------------------------------------------
- // HTML
- //--------------------------------------------------------------------------------
- WriterSerializer sHtml = HtmlSerializer.DEFAULT_SQ;
- ReaderParser pHtml = HtmlParser.DEFAULT;
-
- @Test
- public void serializeHtml() throws Exception {
- testSerialize("serializeHtml", sHtml, oHtml);
- }
-
- @Test
- public void parseHtml() throws Exception {
- testParse("parseHtml", sHtml, pHtml, oHtml);
- }
-
- //--------------------------------------------------------------------------------
- // HTML - 't' property
- //--------------------------------------------------------------------------------
- WriterSerializer sHtmlT = HtmlSerializer.DEFAULT_SQ.clone().setBeanTypePropertyName("t");
- ReaderParser pHtmlT = HtmlParser.DEFAULT.clone().setBeanTypePropertyName("t");
-
- @Test
- public void serializeHtmlT() throws Exception {
- testSerialize("serializeHtmlT", sHtmlT, oHtmlT);
- }
-
- @Test
- public void parseHtmlT() throws Exception {
- testParse("parseHtmlT", sHtmlT, pHtmlT, oHtmlT);
- }
-
- //--------------------------------------------------------------------------------
- // HTML - Readable
- //--------------------------------------------------------------------------------
- WriterSerializer sHtmlR = HtmlSerializer.DEFAULT_SQ_READABLE;
- ReaderParser pHtmlR = HtmlParser.DEFAULT;
-
- @Test
- public void serializeHtmlR() throws Exception {
- testSerialize("serializeHtmlR", sHtmlR, oHtmlR);
- }
-
- @Test
- public void parseHtmlR() throws Exception {
- testParse("parseHtmlR", sHtmlR, pHtmlR, oHtmlR);
- }
-
- //--------------------------------------------------------------------------------
- // UON
- //--------------------------------------------------------------------------------
- WriterSerializer sUon = UonSerializer.DEFAULT;
- ReaderParser pUon = UonParser.DEFAULT;
-
- @Test
- public void serializeUon() throws Exception {
- testSerialize("serializeUon", sUon, oUon);
- }
-
- @Test
- public void parseUon() throws Exception {
- testParse("parseUon", sUon, pUon, oUon);
- }
-
- //--------------------------------------------------------------------------------
- // UON - 't' property
- //--------------------------------------------------------------------------------
- WriterSerializer sUonT = UonSerializer.DEFAULT.clone().setBeanTypePropertyName("t");
- ReaderParser pUonT = UonParser.DEFAULT.clone().setBeanTypePropertyName("t");
-
- @Test
- public void serializeUonT() throws Exception {
- testSerialize("serializeUonT", sUonT, oUonT);
- }
-
- @Test
- public void parseUonT() throws Exception {
- testParse("parseUonT", sUonT, pUonT, oUonT);
- }
-
- //--------------------------------------------------------------------------------
- // UON - Readable
- //--------------------------------------------------------------------------------
- WriterSerializer sUonR = UonSerializer.DEFAULT_READABLE;
- ReaderParser pUonR = UonParser.DEFAULT;
-
- @Test
- public void serializeUonR() throws Exception {
- testSerialize("serializeUonR", sUonR, oUonR);
- }
-
- @Test
- public void parseUonR() throws Exception {
- testParse("parseUonR", sUonR, pUonR, oUonR);
- }
-
- //--------------------------------------------------------------------------------
- // UrlEncoding
- //--------------------------------------------------------------------------------
- WriterSerializer sUrlEncoding = UrlEncodingSerializer.DEFAULT;
- ReaderParser pUrlEncoding = UrlEncodingParser.DEFAULT;
-
- @Test
- public void serializeUrlEncoding() throws Exception {
- testSerialize("serializeUrlEncoding", sUrlEncoding, oUrlEncoding);
- }
-
- @Test
- public void parseUrlEncoding() throws Exception {
- testParse("parseUrlEncoding", sUrlEncoding, pUrlEncoding, oUrlEncoding);
- }
-
- //--------------------------------------------------------------------------------
- // UrlEncoding - 't' property
- //--------------------------------------------------------------------------------
- WriterSerializer sUrlEncodingT = UrlEncodingSerializer.DEFAULT.clone().setBeanTypePropertyName("t");
- ReaderParser pUrlEncodingT = UrlEncodingParser.DEFAULT.clone().setBeanTypePropertyName("t");
-
- @Test
- public void serializeUrlEncodingT() throws Exception {
- testSerialize("serializeUrlEncodingT", sUrlEncodingT, oUrlEncodingT);
- }
-
- @Test
- public void parseUrlEncodingT() throws Exception {
- testParse("parseUrlEncodingT", sUrlEncodingT, pUrlEncodingT, oUrlEncodingT);
- }
-
- //--------------------------------------------------------------------------------
- // UrlEncoding - Readable
- //--------------------------------------------------------------------------------
- WriterSerializer sUrlEncodingR = UrlEncodingSerializer.DEFAULT_READABLE;
- ReaderParser pUrlEncodingR = UrlEncodingParser.DEFAULT;
-
- @Test
- public void serializeUrlEncodingR() throws Exception {
- testSerialize("serializeUrlEncodingR", sUrlEncodingR, oUrlEncodingR);
- }
-
- @Test
- public void parseUrlEncodingR() throws Exception {
- testParse("parseUrlEncodingR", sUrlEncodingR, pUrlEncodingR, oUrlEncodingR);
- }
-
- //--------------------------------------------------------------------------------
- // MsgPack
- //--------------------------------------------------------------------------------
- OutputStreamSerializer sMsgPack = MsgPackSerializer.DEFAULT;
- InputStreamParser pMsgPack = MsgPackParser.DEFAULT;
-
- @Test
- public void serializeMsgPack() throws Exception {
- testSerialize("serializeMsgPack", sMsgPack, oMsgPack);
- }
-
- @Test
- public void parseMsgPack() throws Exception {
- testParse("parseMsgPack", sMsgPack, pMsgPack, oMsgPack);
- }
-
- @Test
- public void parseMsgPackJsonEquivalency() throws Exception {
- testParseJsonEquivalency("parseMsgPackJsonEquivalency", sMsgPack, pMsgPack, oJson);
- }
-
- //--------------------------------------------------------------------------------
- // MsgPack - 't' property
- //--------------------------------------------------------------------------------
- OutputStreamSerializer sMsgPackT = MsgPackSerializer.DEFAULT.clone().setBeanTypePropertyName("t");
- InputStreamParser pMsgPackT = MsgPackParser.DEFAULT.clone().setBeanTypePropertyName("t");
-
- @Test
- public void serializeMsgPackT() throws Exception {
- testSerialize("serializeMsgPackT", sMsgPackT, oMsgPackT);
- }
-
- @Test
- public void parseMsgPackT() throws Exception {
- testParse("parseMsgPackT", sMsgPackT, pMsgPackT, oMsgPackT);
- }
-
- @Test
- public void parseMsgPackTJsonEquivalency() throws Exception {
- testParseJsonEquivalency("parseMsgPackTJsonEquivalency", sMsgPackT, pMsgPackT, oJson);
- }
-
- //--------------------------------------------------------------------------------
- // RdfXml
- //--------------------------------------------------------------------------------
- WriterSerializer sRdfXml = RdfSerializer.DEFAULT_XMLABBREV;
- ReaderParser pRdfXml = RdfParser.DEFAULT_XML;
-
- @Test
- public void serializeRdfXml() throws Exception {
- testSerialize("serializeRdfXml", sRdfXml, oRdfXml);
- }
-
- @Test
- public void parseRdfXml() throws Exception {
- testParse("parseRdfXml", sRdfXml, pRdfXml, oRdfXml);
- }
-
- //--------------------------------------------------------------------------------
- // RdfXml - 't' property
- //--------------------------------------------------------------------------------
- WriterSerializer sRdfXmlT = RdfSerializer.DEFAULT_XMLABBREV.clone().setBeanTypePropertyName("t");
- ReaderParser pRdfXmlT = RdfParser.DEFAULT_XML.clone().setBeanTypePropertyName("t");
-
- @Test
- public void serializeRdfXmlT() throws Exception {
- testSerialize("serializeRdfXmlT", sRdfXmlT, oRdfXmlT);
- }
-
- @Test
- public void parseRdfXmlT() throws Exception {
- testParse("parseRdfXmlT", sRdfXmlT, pRdfXmlT, oRdfXmlT);
- }
-
- //--------------------------------------------------------------------------------
- // RdfXml - Readable
- //--------------------------------------------------------------------------------
- WriterSerializer sRdfXmlR = RdfSerializer.DEFAULT_XMLABBREV.clone().setUseWhitespace(true);
- ReaderParser pRdfXmlR = RdfParser.DEFAULT_XML;
-
- @Test
- public void serializeRdfXmlR() throws Exception {
- testSerialize("serializeRdfXmlR", sRdfXmlR, oRdfXmlR);
- }
-
- @Test
- public void parseRdfXmlR() throws Exception {
- testParse("parseRdfXmlR", sRdfXmlR, pRdfXmlR, oRdfXmlR);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0d70804d/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java
index cc5e6dc..3614fad 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java
@@ -16,7 +16,7 @@ import static org.apache.juneau.dto.html5.HtmlBuilder.*;
import java.util.*;
-import org.apache.juneau.dto.ComboTest;
+import org.apache.juneau.ComboTest;
import org.junit.runner.*;
import org.junit.runners.*;
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0d70804d/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5TemplateComboTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5TemplateComboTest.java b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5TemplateComboTest.java
index ad04afb..cf9ad84 100644
--- a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5TemplateComboTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5TemplateComboTest.java
@@ -17,8 +17,8 @@ import static org.apache.juneau.dto.html5.HtmlBuilder.*;
import java.util.*;
import org.apache.juneau.BeanSession;
+import org.apache.juneau.ComboTest;
import org.apache.juneau.annotation.Bean;
-import org.apache.juneau.dto.ComboTest;
import org.junit.runner.*;
import org.junit.runners.*;
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0d70804d/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapComboTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapComboTest.java b/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapComboTest.java
new file mode 100644
index 0000000..0da8c2a
--- /dev/null
+++ b/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapComboTest.java
@@ -0,0 +1,577 @@
+// ***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file *
+// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file *
+// * to you 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 org.apache.juneau.transforms;
+
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.GregorianCalendar;
+import java.util.Locale;
+import java.util.TimeZone;
+
+import org.apache.juneau.ComboTest;
+import org.apache.juneau.ObjectMap;
+import org.apache.juneau.TestUtils;
+import org.apache.juneau.parser.Parser;
+import org.apache.juneau.serializer.Serializer;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+/**
+ * Exhaustive serialization tests for the CalendarSwap class.
+ */
+@RunWith(Parameterized.class)
+@SuppressWarnings({"javadoc"})
+public class CalendarSwapComboTest extends ComboTest {
+
+ private static Calendar singleDate = new GregorianCalendar(TimeZone.getTimeZone("PST"));
+ static {
+ singleDate.setTimeInMillis(0);
+ singleDate.set(1901, 2, 3, 10, 11, 12);
+ }
+
+ private static Calendar[] dateArray = new Calendar[]{singleDate};
+
+ private static ObjectMap dateMap = new ObjectMap().append("foo", singleDate);
+
+
+ @Parameterized.Parameters
+ public static Collection<Object[]> getParameters() {
+ return Arrays.asList(new Object[][] {
+ {
+ "CalendarSwap.ToString/singleDate",
+ singleDate,
+ CalendarSwap.ToString.class,
+ /* Json */ "'Sun Mar 03 10:11:12 PST 1901'",
+ /* JsonT */ "'Sun Mar 03 10:11:12 PST 1901'",
+ /* JsonR */ "'Sun Mar 03 10:11:12 PST 1901'",
+ /* Xml */ "<string>Sun Mar 03 10:11:12 PST 1901</string>",
+ /* XmlT */ "<string>Sun Mar 03 10:11:12 PST 1901</string>",
+ /* XmlR */ "<string>Sun Mar 03 10:11:12 PST 1901</string>\n",
+ /* XmlNs */ "<string>Sun Mar 03 10:11:12 PST 1901</string>",
+ /* Html */ "<string>Sun Mar 03 10:11:12 PST 1901</string>",
+ /* HtmlT */ "<string>Sun Mar 03 10:11:12 PST 1901</string>",
+ /* HtmlR */ "<string>Sun Mar 03 10:11:12 PST 1901</string>",
+ /* Uon */ "'Sun Mar 03 10:11:12 PST 1901'",
+ /* UonT */ "'Sun Mar 03 10:11:12 PST 1901'",
+ /* UonR */ "'Sun Mar 03 10:11:12 PST 1901'",
+ /* UrlEnc */ "_value='Sun+Mar+03+10:11:12+PST+1901'",
+ /* UrlEncT */ "_value='Sun+Mar+03+10:11:12+PST+1901'",
+ /* UrlEncR */ "_value='Sun+Mar+03+10:11:12+PST+1901'",
+ /* MsgPack */ "BC53756E204D61722030332031303A31313A3132205053542031393031",
+ /* MsgPackT */ "BC53756E204D61722030332031303A31313A3132205053542031393031",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n </rdf:Description>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarSwap.ToString/dateArray",
+ dateArray,
+ CalendarSwap.ToString.class,
+ /* Json */ "['Sun Mar 03 10:11:12 PST 1901']",
+ /* JsonT */ "['Sun Mar 03 10:11:12 PST 1901']",
+ /* JsonR */ "[\n\t'Sun Mar 03 10:11:12 PST 1901'\n]",
+ /* Xml */ "<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
+ /* XmlT */ "<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
+ /* XmlR */ "<array>\n\t<string>Sun Mar 03 10:11:12 PST 1901</string>\n</array>\n",
+ /* XmlNs */ "<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
+ /* Html */ "<ul><li>Sun Mar 03 10:11:12 PST 1901</li></ul>",
+ /* HtmlT */ "<ul><li>Sun Mar 03 10:11:12 PST 1901</li></ul>",
+ /* HtmlR */ "<ul>\n\t<li>Sun Mar 03 10:11:12 PST 1901</li>\n</ul>\n",
+ /* Uon */ "@('Sun Mar 03 10:11:12 PST 1901')",
+ /* UonT */ "@('Sun Mar 03 10:11:12 PST 1901')",
+ /* UonR */ "@(\n\t'Sun Mar 03 10:11:12 PST 1901'\n)",
+ /* UrlEnc */ "_value=@('Sun+Mar+03+10:11:12+PST+1901')",
+ /* UrlEncT */ "_value=@('Sun+Mar+03+10:11:12+PST+1901')",
+ /* UrlEncR */ "_value=@(\n\t'Sun+Mar+03+10:11:12+PST+1901'\n)",
+ /* MsgPack */ "91BC53756E204D61722030332031303A31313A3132205053542031393031",
+ /* MsgPackT */ "91BC53756E204D61722030332031303A31313A3132205053542031393031",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Seq>\n <rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n </rdf:Seq>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarSwap.ToString",
+ dateMap,
+ CalendarSwap.ToString.class,
+ /* Json */ "{foo:'Sun Mar 03 10:11:12 PST 1901'}",
+ /* JsonT */ "{foo:'Sun Mar 03 10:11:12 PST 1901'}",
+ /* JsonR */ "{\n\tfoo: 'Sun Mar 03 10:11:12 PST 1901'\n}",
+ /* Xml */ "<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
+ /* XmlT */ "<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
+ /* XmlR */ "<object>\n\t<foo>Sun Mar 03 10:11:12 PST 1901</foo>\n</object>\n",
+ /* XmlNs */ "<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
+ /* Html */ "<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
+ /* HtmlT */ "<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
+ /* HtmlR */ "<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun Mar 03 10:11:12 PST 1901</td>\n\t</tr>\n</table>\n",
+ /* Uon */ "(foo='Sun Mar 03 10:11:12 PST 1901')",
+ /* UonT */ "(foo='Sun Mar 03 10:11:12 PST 1901')",
+ /* UonR */ "(\n\tfoo='Sun Mar 03 10:11:12 PST 1901'\n)",
+ /* UrlEnc */ "foo='Sun+Mar+03+10:11:12+PST+1901'",
+ /* UrlEncT */ "foo='Sun+Mar+03+10:11:12+PST+1901'",
+ /* UrlEncR */ "foo='Sun+Mar+03+10:11:12+PST+1901'",
+ /* MsgPack */ "81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
+ /* MsgPackT */ "81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n </rdf:Description>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarSwap.ISO8601DT/singleDate",
+ singleDate,
+ CalendarSwap.ISO8601DT.class,
+ /* Json */ "'1901-03-03T10:11:12-08:00'",
+ /* JsonT */ "'1901-03-03T10:11:12-08:00'",
+ /* JsonR */ "'1901-03-03T10:11:12-08:00'",
+ /* Xml */ "<string>1901-03-03T10:11:12-08:00</string>",
+ /* XmlT */ "<string>1901-03-03T10:11:12-08:00</string>",
+ /* XmlR */ "<string>1901-03-03T10:11:12-08:00</string>\n",
+ /* XmlNs */ "<string>1901-03-03T10:11:12-08:00</string>",
+ /* Html */ "<string>1901-03-03T10:11:12-08:00</string>",
+ /* HtmlT */ "<string>1901-03-03T10:11:12-08:00</string>",
+ /* HtmlR */ "<string>1901-03-03T10:11:12-08:00</string>",
+ /* Uon */ "1901-03-03T10:11:12-08:00",
+ /* UonT */ "1901-03-03T10:11:12-08:00",
+ /* UonR */ "1901-03-03T10:11:12-08:00",
+ /* UrlEnc */ "_value=1901-03-03T10:11:12-08:00",
+ /* UrlEncT */ "_value=1901-03-03T10:11:12-08:00",
+ /* UrlEncR */ "_value=1901-03-03T10:11:12-08:00",
+ /* MsgPack */ "B9313930312D30332D30335431303A31313A31322D30383A3030",
+ /* MsgPackT */ "B9313930312D30332D30335431303A31313A31322D30383A3030",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <j:value>1901-03-03T10:11:12-08:00</j:value>\n </rdf:Description>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarSwap.ISO8601DT/dateArray",
+ dateArray,
+ CalendarSwap.ISO8601DT.class,
+ /* Json */ "['1901-03-03T10:11:12-08:00']",
+ /* JsonT */ "['1901-03-03T10:11:12-08:00']",
+ /* JsonR */ "[\n\t'1901-03-03T10:11:12-08:00'\n]",
+ /* Xml */ "<array><string>1901-03-03T10:11:12-08:00</string></array>",
+ /* XmlT */ "<array><string>1901-03-03T10:11:12-08:00</string></array>",
+ /* XmlR */ "<array>\n\t<string>1901-03-03T10:11:12-08:00</string>\n</array>\n",
+ /* XmlNs */ "<array><string>1901-03-03T10:11:12-08:00</string></array>",
+ /* Html */ "<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
+ /* HtmlT */ "<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
+ /* HtmlR */ "<ul>\n\t<li>1901-03-03T10:11:12-08:00</li>\n</ul>\n",
+ /* Uon */ "@(1901-03-03T10:11:12-08:00)",
+ /* UonT */ "@(1901-03-03T10:11:12-08:00)",
+ /* UonR */ "@(\n\t1901-03-03T10:11:12-08:00\n)",
+ /* UrlEnc */ "_value=@(1901-03-03T10:11:12-08:00)",
+ /* UrlEncT */ "_value=@(1901-03-03T10:11:12-08:00)",
+ /* UrlEncR */ "_value=@(\n\t1901-03-03T10:11:12-08:00\n)",
+ /* MsgPack */ "91B9313930312D30332D30335431303A31313A31322D30383A3030",
+ /* MsgPackT */ "91B9313930312D30332D30335431303A31313A31322D30383A3030",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Seq>\n <rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n </rdf:Seq>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarSwap.ISO8601DT/dateMap",
+ dateMap,
+ CalendarSwap.ISO8601DT.class,
+ /* Json */ "{foo:'1901-03-03T10:11:12-08:00'}",
+ /* JsonT */ "{foo:'1901-03-03T10:11:12-08:00'}",
+ /* JsonR */ "{\n\tfoo: '1901-03-03T10:11:12-08:00'\n}",
+ /* Xml */ "<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
+ /* XmlT */ "<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
+ /* XmlR */ "<object>\n\t<foo>1901-03-03T10:11:12-08:00</foo>\n</object>\n",
+ /* XmlNs */ "<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
+ /* Html */ "<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
+ /* HtmlT */ "<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
+ /* HtmlR */ "<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>1901-03-03T10:11:12-08:00</td>\n\t</tr>\n</table>\n",
+ /* Uon */ "(foo=1901-03-03T10:11:12-08:00)",
+ /* UonT */ "(foo=1901-03-03T10:11:12-08:00)",
+ /* UonR */ "(\n\tfoo=1901-03-03T10:11:12-08:00\n)",
+ /* UrlEnc */ "foo=1901-03-03T10:11:12-08:00",
+ /* UrlEncT */ "foo=1901-03-03T10:11:12-08:00",
+ /* UrlEncR */ "foo=1901-03-03T10:11:12-08:00",
+ /* MsgPack */ "81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
+ /* MsgPackT */ "81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n </rdf:Description>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarSwap.RFC2822DTZ/singleDate",
+ singleDate,
+ CalendarSwap.RFC2822DTZ.class,
+ /* Json */ "'Sun, 03 Mar 1901 18:11:12 GMT'",
+ /* JsonT */ "'Sun, 03 Mar 1901 18:11:12 GMT'",
+ /* JsonR */ "'Sun, 03 Mar 1901 18:11:12 GMT'",
+ /* Xml */ "<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+ /* XmlT */ "<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+ /* XmlR */ "<string>Sun, 03 Mar 1901 18:11:12 GMT</string>\n",
+ /* XmlNs */ "<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+ /* Html */ "<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+ /* HtmlT */ "<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+ /* HtmlR */ "<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+ /* Uon */ "'Sun, 03 Mar 1901 18:11:12 GMT'",
+ /* UonT */ "'Sun, 03 Mar 1901 18:11:12 GMT'",
+ /* UonR */ "'Sun, 03 Mar 1901 18:11:12 GMT'",
+ /* UrlEnc */ "_value='Sun,+03+Mar+1901+18:11:12+GMT'",
+ /* UrlEncT */ "_value='Sun,+03+Mar+1901+18:11:12+GMT'",
+ /* UrlEncR */ "_value='Sun,+03+Mar+1901+18:11:12+GMT'",
+ /* MsgPack */ "BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+ /* MsgPackT */ "BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n </rdf:Description>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarSwap.RFC2822DTZ/dateArray",
+ dateArray,
+ CalendarSwap.RFC2822DTZ.class,
+ /* Json */ "['Sun, 03 Mar 1901 18:11:12 GMT']",
+ /* JsonT */ "['Sun, 03 Mar 1901 18:11:12 GMT']",
+ /* JsonR */ "[\n\t'Sun, 03 Mar 1901 18:11:12 GMT'\n]",
+ /* Xml */ "<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
+ /* XmlT */ "<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
+ /* XmlR */ "<array>\n\t<string>Sun, 03 Mar 1901 18:11:12 GMT</string>\n</array>\n",
+ /* XmlNs */ "<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
+ /* Html */ "<ul><li>Sun, 03 Mar 1901 18:11:12 GMT</li></ul>",
+ /* HtmlT */ "<ul><li>Sun, 03 Mar 1901 18:11:12 GMT</li></ul>",
+ /* HtmlR */ "<ul>\n\t<li>Sun, 03 Mar 1901 18:11:12 GMT</li>\n</ul>\n",
+ /* Uon */ "@('Sun, 03 Mar 1901 18:11:12 GMT')",
+ /* UonT */ "@('Sun, 03 Mar 1901 18:11:12 GMT')",
+ /* UonR */ "@(\n\t'Sun, 03 Mar 1901 18:11:12 GMT'\n)",
+ /* UrlEnc */ "_value=@('Sun,+03+Mar+1901+18:11:12+GMT')",
+ /* UrlEncT */ "_value=@('Sun,+03+Mar+1901+18:11:12+GMT')",
+ /* UrlEncR */ "_value=@(\n\t'Sun,+03+Mar+1901+18:11:12+GMT'\n)",
+ /* MsgPack */ "91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+ /* MsgPackT */ "91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Seq>\n <rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n </rdf:Seq>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarSwap.RFC2822DTZ/dateMap",
+ dateMap,
+ CalendarSwap.RFC2822DTZ.class,
+ /* Json */ "{foo:'Sun, 03 Mar 1901 18:11:12 GMT'}",
+ /* JsonT */ "{foo:'Sun, 03 Mar 1901 18:11:12 GMT'}",
+ /* JsonR */ "{\n\tfoo: 'Sun, 03 Mar 1901 18:11:12 GMT'\n}",
+ /* Xml */ "<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
+ /* XmlT */ "<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
+ /* XmlR */ "<object>\n\t<foo>Sun, 03 Mar 1901 18:11:12 GMT</foo>\n</object>\n",
+ /* XmlNs */ "<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
+ /* Html */ "<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
+ /* HtmlT */ "<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
+ /* HtmlR */ "<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun, 03 Mar 1901 18:11:12 GMT</td>\n\t</tr>\n</table>\n",
+ /* Uon */ "(foo='Sun, 03 Mar 1901 18:11:12 GMT')",
+ /* UonT */ "(foo='Sun, 03 Mar 1901 18:11:12 GMT')",
+ /* UonR */ "(\n\tfoo='Sun, 03 Mar 1901 18:11:12 GMT'\n)",
+ /* UrlEnc */ "foo='Sun,+03+Mar+1901+18:11:12+GMT'",
+ /* UrlEncT */ "foo='Sun,+03+Mar+1901+18:11:12+GMT'",
+ /* UrlEncR */ "foo='Sun,+03+Mar+1901+18:11:12+GMT'",
+ /* MsgPack */ "81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
+ /* MsgPackT */ "81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n </rdf:Description>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarLongSwap",
+ singleDate,
+ CalendarLongSwap.class,
+ /* Json */ "-2172116928000",
+ /* JsonT */ "-2172116928000",
+ /* JsonR */ "-2172116928000",
+ /* Xml */ "<number>-2172116928000</number>",
+ /* XmlT */ "<number>-2172116928000</number>",
+ /* XmlR */ "<number>-2172116928000</number>\n",
+ /* XmlNs */ "<number>-2172116928000</number>",
+ /* Html */ "<number>-2172116928000</number>",
+ /* HtmlT */ "<number>-2172116928000</number>",
+ /* HtmlR */ "<number>-2172116928000</number>",
+ /* Uon */ "-2172116928000",
+ /* UonT */ "-2172116928000",
+ /* UonR */ "-2172116928000",
+ /* UrlEnc */ "_value=-2172116928000",
+ /* UrlEncT */ "_value=-2172116928000",
+ /* UrlEncR */ "_value=-2172116928000",
+ /* MsgPack */ "D3FFFFFE0643BDFA00",
+ /* MsgPackT */ "D3FFFFFE0643BDFA00",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <j:value>-2172116928000</j:value>\n </rdf:Description>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarLongSwap/dateArray",
+ dateArray,
+ CalendarLongSwap.class,
+ /* Json */ "[-2172116928000]",
+ /* JsonT */ "[-2172116928000]",
+ /* JsonR */ "[\n\t-2172116928000\n]",
+ /* Xml */ "<array><number>-2172116928000</number></array>",
+ /* XmlT */ "<array><number>-2172116928000</number></array>",
+ /* XmlR */ "<array>\n\t<number>-2172116928000</number>\n</array>\n",
+ /* XmlNs */ "<array><number>-2172116928000</number></array>",
+ /* Html */ "<ul><li><number>-2172116928000</number></li></ul>",
+ /* HtmlT */ "<ul><li><number>-2172116928000</number></li></ul>",
+ /* HtmlR */ "<ul>\n\t<li><number>-2172116928000</number></li>\n</ul>\n",
+ /* Uon */ "@(-2172116928000)",
+ /* UonT */ "@(-2172116928000)",
+ /* UonR */ "@(\n\t-2172116928000\n)",
+ /* UrlEnc */ "_value=@(-2172116928000)",
+ /* UrlEncT */ "_value=@(-2172116928000)",
+ /* UrlEncR */ "_value=@(\n\t-2172116928000\n)",
+ /* MsgPack */ "91D3FFFFFE0643BDFA00",
+ /* MsgPackT */ "91D3FFFFFE0643BDFA00",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Seq>\n <rdf:li>-2172116928000</rdf:li>\n </rdf:Seq>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarLongSwap/dateMap",
+ dateMap,
+ CalendarLongSwap.class,
+ /* Json */ "{foo:-2172116928000}",
+ /* JsonT */ "{foo:-2172116928000}",
+ /* JsonR */ "{\n\tfoo: -2172116928000\n}",
+ /* Xml */ "<object><foo _type='number'>-2172116928000</foo></object>",
+ /* XmlT */ "<object><foo t='number'>-2172116928000</foo></object>",
+ /* XmlR */ "<object>\n\t<foo _type='number'>-2172116928000</foo>\n</object>\n",
+ /* XmlNs */ "<object><foo _type='number'>-2172116928000</foo></object>",
+ /* Html */ "<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
+ /* HtmlT */ "<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
+ /* HtmlR */ "<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n</table>\n",
+ /* Uon */ "(foo=-2172116928000)",
+ /* UonT */ "(foo=-2172116928000)",
+ /* UonR */ "(\n\tfoo=-2172116928000\n)",
+ /* UrlEnc */ "foo=-2172116928000",
+ /* UrlEncT */ "foo=-2172116928000",
+ /* UrlEncR */ "foo=-2172116928000",
+ /* MsgPack */ "81A3666F6FD3FFFFFE0643BDFA00",
+ /* MsgPackT */ "81A3666F6FD3FFFFFE0643BDFA00",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:foo>-2172116928000</jp:foo>\n </rdf:Description>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarMapSwap/singleDate",
+ singleDate,
+ CalendarMapSwap.class,
+ /* Json */ "{time:-2172116928000,timeZone:'PST'}",
+ /* JsonT */ "{time:-2172116928000,timeZone:'PST'}",
+ /* JsonR */ "{\n\ttime: -2172116928000,\n\ttimeZone: 'PST'\n}",
+ /* Xml */ "<object><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></object>",
+ /* XmlT */ "<object><time t='number'>-2172116928000</time><timeZone>PST</timeZone></object>",
+ /* XmlR */ "<object>\n\t<time _type='number'>-2172116928000</time>\n\t<timeZone>PST</timeZone>\n</object>\n",
+ /* XmlNs */ "<object><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></object>",
+ /* Html */ "<table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table>",
+ /* HtmlT */ "<table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table>",
+ /* HtmlR */ "<table>\n\t<tr>\n\t\t<td>time</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n\t<tr>\n\t\t<td>timeZone</td>\n\t\t<td>PST</td>\n\t</tr>\n</table>\n",
+ /* Uon */ "(time=-2172116928000,timeZone=PST)",
+ /* UonT */ "(time=-2172116928000,timeZone=PST)",
+ /* UonR */ "(\n\ttime=-2172116928000,\n\ttimeZone=PST\n)",
+ /* UrlEnc */ "time=-2172116928000&timeZone=PST",
+ /* UrlEncT */ "time=-2172116928000&timeZone=PST",
+ /* UrlEncR */ "time=-2172116928000\n&timeZone=PST",
+ /* MsgPack */ "82A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
+ /* MsgPackT */ "82A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:time>-2172116928000</jp:time>\n <jp:timeZone>PST</jp:timeZone>\n </rdf:Description>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarMapSwap/dateArray",
+ dateArray,
+ CalendarMapSwap.class,
+ /* Json */ "[{time:-2172116928000,timeZone:'PST'}]",
+ /* JsonT */ "[{time:-2172116928000,timeZone:'PST'}]",
+ /* JsonR */ "[\n\t{\n\t\ttime: -2172116928000,\n\t\ttimeZone: 'PST'\n\t}\n]",
+ /* Xml */ "<array><object><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></object></array>",
+ /* XmlT */ "<array><object><time t='number'>-2172116928000</time><timeZone>PST</timeZone></object></array>",
+ /* XmlR */ "<array>\n\t<object>\n\t\t<time _type='number'>-2172116928000</time>\n\t\t<timeZone>PST</timeZone>\n\t</object>\n</array>\n",
+ /* XmlNs */ "<array><object><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></object></array>",
+ /* Html */ "<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table></li></ul>",
+ /* HtmlT */ "<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table></li></ul>",
+ /* HtmlR */ "<ul>\n\t<li>\n\t\t<table>\n\t\t\t<tr>\n\t\t\t\t<td>time</td>\n\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>timeZone</td>\n\t\t\t\t<td>PST</td>\n\t\t\t</tr>\n\t\t</table>\n\t</li>\n</ul>\n",
+ /* Uon */ "@((time=-2172116928000,timeZone=PST))",
+ /* UonT */ "@((time=-2172116928000,timeZone=PST))",
+ /* UonR */ "@(\n\t(\n\t\ttime=-2172116928000,\n\t\ttimeZone=PST\n\t)\n)",
+ /* UrlEnc */ "_value=@((time=-2172116928000,timeZone=PST))",
+ /* UrlEncT */ "_value=@((time=-2172116928000,timeZone=PST))",
+ /* UrlEncR */ "_value=@(\n\t(\n\t\ttime=-2172116928000,\n\t\ttimeZone=PST\n\t)\n)",
+ /* MsgPack */ "9182A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
+ /* MsgPackT */ "9182A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:time>-2172116928000</jp:time>\n <jp:timeZone>PST</jp:timeZone>\n </rdf:li>\n </rdf:Seq>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarMapSwap/dateMap",
+ dateMap,
+ CalendarMapSwap.class,
+ /* Json */ "{foo:{time:-2172116928000,timeZone:'PST'}}",
+ /* JsonT */ "{foo:{time:-2172116928000,timeZone:'PST'}}",
+ /* JsonR */ "{\n\tfoo: {\n\t\ttime: -2172116928000,\n\t\ttimeZone: 'PST'\n\t}\n}",
+ /* Xml */ "<object><foo _type='object'><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></foo></object>",
+ /* XmlT */ "<object><foo t='object'><time t='number'>-2172116928000</time><timeZone>PST</timeZone></foo></object>",
+ /* XmlR */ "<object>\n\t<foo _type='object'>\n\t\t<time _type='number'>-2172116928000</time>\n\t\t<timeZone>PST</timeZone>\n\t</foo>\n</object>\n",
+ /* XmlNs */ "<object><foo _type='object'><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></foo></object>",
+ /* Html */ "<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table></td></tr></table>",
+ /* HtmlT */ "<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table></td></tr></table>",
+ /* HtmlR */ "<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>\n\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>time</td>\n\t\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>timeZone</td>\n\t\t\t\t\t<td>PST</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n</table>\n",
+ /* Uon */ "(foo=(time=-2172116928000,timeZone=PST))",
+ /* UonT */ "(foo=(time=-2172116928000,timeZone=PST))",
+ /* UonR */ "(\n\tfoo=(\n\t\ttime=-2172116928000,\n\t\ttimeZone=PST\n\t)\n)",
+ /* UrlEnc */ "foo=(time=-2172116928000,timeZone=PST)",
+ /* UrlEncT */ "foo=(time=-2172116928000,timeZone=PST)",
+ /* UrlEncR */ "foo=(\n\ttime=-2172116928000,\n\ttimeZone=PST\n)",
+ /* MsgPack */ "81A3666F6F82A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
+ /* MsgPackT */ "81A3666F6F82A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:foo rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:foo rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:foo rdf:parseType='Resource'>\n <jp:time>-2172116928000</jp:time>\n <jp:timeZone>PST</jp:timeZone>\n </jp:foo>\n </rdf:Description>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarSwap.DateMedium/singleDate",
+ singleDate,
+ CalendarSwap.DateMedium.class,
+ /* Json */ "'Mar 3, 1901'",
+ /* JsonT */ "'Mar 3, 1901'",
+ /* JsonR */ "'Mar 3, 1901'",
+ /* Xml */ "<string>Mar 3, 1901</string>",
+ /* XmlT */ "<string>Mar 3, 1901</string>",
+ /* XmlR */ "<string>Mar 3, 1901</string>\n",
+ /* XmlNs */ "<string>Mar 3, 1901</string>",
+ /* Html */ "<string>Mar 3, 1901</string>",
+ /* HtmlT */ "<string>Mar 3, 1901</string>",
+ /* HtmlR */ "<string>Mar 3, 1901</string>",
+ /* Uon */ "'Mar 3, 1901'",
+ /* UonT */ "'Mar 3, 1901'",
+ /* UonR */ "'Mar 3, 1901'",
+ /* UrlEnc */ "_value='Mar+3,+1901'",
+ /* UrlEncT */ "_value='Mar+3,+1901'",
+ /* UrlEncR */ "_value='Mar+3,+1901'",
+ /* MsgPack */ "AB4D617220332C2031393031",
+ /* MsgPackT */ "AB4D617220332C2031393031",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <j:value>Mar 3, 1901</j:value>\n </rdf:Description>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarSwap.DateMedium/dateArray",
+ dateArray,
+ CalendarSwap.DateMedium.class,
+ /* Json */ "['Mar 3, 1901']",
+ /* JsonT */ "['Mar 3, 1901']",
+ /* JsonR */ "[\n\t'Mar 3, 1901'\n]",
+ /* Xml */ "<array><string>Mar 3, 1901</string></array>",
+ /* XmlT */ "<array><string>Mar 3, 1901</string></array>",
+ /* XmlR */ "<array>\n\t<string>Mar 3, 1901</string>\n</array>\n",
+ /* XmlNs */ "<array><string>Mar 3, 1901</string></array>",
+ /* Html */ "<ul><li>Mar 3, 1901</li></ul>",
+ /* HtmlT */ "<ul><li>Mar 3, 1901</li></ul>",
+ /* HtmlR */ "<ul>\n\t<li>Mar 3, 1901</li>\n</ul>\n",
+ /* Uon */ "@('Mar 3, 1901')",
+ /* UonT */ "@('Mar 3, 1901')",
+ /* UonR */ "@(\n\t'Mar 3, 1901'\n)",
+ /* UrlEnc */ "_value=@('Mar+3,+1901')",
+ /* UrlEncT */ "_value=@('Mar+3,+1901')",
+ /* UrlEncR */ "_value=@(\n\t'Mar+3,+1901'\n)",
+ /* MsgPack */ "91AB4D617220332C2031393031",
+ /* MsgPackT */ "91AB4D617220332C2031393031",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Seq>\n <rdf:li>Mar 3, 1901</rdf:li>\n </rdf:Seq>\n</rdf:RDF>\n",
+ },
+ {
+ "CalendarSwap.DateMedium/dateMap",
+ dateMap,
+ CalendarSwap.DateMedium.class,
+ /* Json */ "{foo:'Mar 3, 1901'}",
+ /* JsonT */ "{foo:'Mar 3, 1901'}",
+ /* JsonR */ "{\n\tfoo: 'Mar 3, 1901'\n}",
+ /* Xml */ "<object><foo>Mar 3, 1901</foo></object>",
+ /* XmlT */ "<object><foo>Mar 3, 1901</foo></object>",
+ /* XmlR */ "<object>\n\t<foo>Mar 3, 1901</foo>\n</object>\n",
+ /* XmlNs */ "<object><foo>Mar 3, 1901</foo></object>",
+ /* Html */ "<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
+ /* HtmlT */ "<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
+ /* HtmlR */ "<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Mar 3, 1901</td>\n\t</tr>\n</table>\n",
+ /* Uon */ "(foo='Mar 3, 1901')",
+ /* UonT */ "(foo='Mar 3, 1901')",
+ /* UonR */ "(\n\tfoo='Mar 3, 1901'\n)",
+ /* UrlEnc */ "foo='Mar+3,+1901'",
+ /* UrlEncT */ "foo='Mar+3,+1901'",
+ /* UrlEncR */ "foo='Mar+3,+1901'",
+ /* MsgPack */ "81A3666F6FAB4D617220332C2031393031",
+ /* MsgPackT */ "81A3666F6FAB4D617220332C2031393031",
+ /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:foo>Mar 3, 1901</jp:foo>\n </rdf:Description>\n</rdf:RDF>\n",
+ },
+ });
+ }
+
+ private Class<?> swapClass;
+
+ public CalendarSwapComboTest(
+ String label,
+ Object in,
+ Class<?> swapClass,
+ String oJson, String oJsonT, String oJsonR,
+ String oXml, String oXmlT, String oXmlR, String oXmlNs,
+ String oHtml, String oHtmlT, String oHtmlR,
+ String oUon, String oUonT, String oUonR,
+ String oUrlEncoding, String oUrlEncodingT, String oUrlEncodingR,
+ String oMsgPack, String oMsgPackT,
+ String oRdfXml, String oRdfXmlT, String oRdfXmlR
+ ) {
+ super(
+ label,
+ in,
+ oJson, oJsonT, oJsonR,
+ oXml, oXmlT, oXmlR, oXmlNs,
+ oHtml, oHtmlT, oHtmlR,
+ oUon, oUonT, oUonR,
+ oUrlEncoding, oUrlEncodingT, oUrlEncodingR,
+ oMsgPack, oMsgPackT,
+ oRdfXml, oRdfXmlT, oRdfXmlR
+ );
+ this.swapClass = swapClass;
+ }
+
+ @BeforeClass
+ public static void beforeClass() {
+ TestUtils.setTimeZone("PST");
+ TestUtils.setLocale(Locale.US);
+ }
+
+ @AfterClass
+ public static void afterClass() {
+ TestUtils.unsetTimeZone();
+ TestUtils.unsetLocale();
+ }
+
+ @Override
+ protected Serializer applySettings(Serializer s) throws Exception {
+ if (s.isLocked())
+ s = s.clone();
+ return s.addPojoSwaps(swapClass);
+ }
+
+ @Override
+ protected Parser applySettings(Parser p) throws Exception {
+ if (p.isLocked())
+ p = p.clone();
+ return p.addPojoSwaps(swapClass);
+ }
+}