Repository: incubator-juneau
Updated Branches:
  refs/heads/master 0d70804d8 -> e6b71aca3


Add DateSwapComboTest tests.

Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/e6b71aca
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/e6b71aca
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/e6b71aca

Branch: refs/heads/master
Commit: e6b71aca3bdc98c7468a975058cfba7d3a147f35
Parents: 0d70804
Author: JamesBognar <[email protected]>
Authored: Mon Feb 20 18:00:10 2017 -0500
Committer: JamesBognar <[email protected]>
Committed: Mon Feb 20 18:00:10 2017 -0500

----------------------------------------------------------------------
 .../juneau/transforms/CalendarSwapTest.java     |   2 +-
 .../juneau/transforms/DateFilterTest.java       | 165 ------
 .../juneau/transforms/DateSwapComboTest.java    | 571 +++++++++++++++++++
 .../apache/juneau/transforms/DateSwapTest.java  |  61 ++
 4 files changed, 633 insertions(+), 166 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e6b71aca/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 d98e811..d173c95 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
@@ -34,7 +34,7 @@ import org.junit.*;
 @SuppressWarnings("javadoc")
 public class CalendarSwapTest {
 
-       private static Calendar testDate = new 
GregorianCalendar(TimeZone.getTimeZone("PST"));
+       static Calendar testDate = new 
GregorianCalendar(TimeZone.getTimeZone("PST"));
        static {
                testDate.setTimeInMillis(0);
                testDate.set(1901, 2, 3, 10, 11, 12);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e6b71aca/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateFilterTest.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateFilterTest.java
 
b/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateFilterTest.java
deleted file mode 100755
index 359e829..0000000
--- 
a/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateFilterTest.java
+++ /dev/null
@@ -1,165 +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.transforms;
-
-import static org.junit.Assert.*;
-
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.junit.*;
-
-@SuppressWarnings({"deprecation","javadoc"})
-public class DateFilterTest {
-
-       @BeforeClass
-       public static void beforeClass() {
-               TestUtils.setTimeZone("GMT-5");
-       }
-
-       @AfterClass
-       public static void afterClass() {
-               TestUtils.unsetTimeZone();
-       }
-
-       private Date testDate = new Date(1, 2, 3, 4, 5, 6);
-
-       
//====================================================================================================
-       // testString - DEFAULT_STRING
-       
//====================================================================================================
-       @Test
-       public void testString() throws Exception {
-               Class<?> f = DateSwap.ToString.class;
-               WriterSerializer s = new 
JsonSerializer.Simple().addPojoSwaps(f);
-               ReaderParser p = new JsonParser().addPojoSwaps(f);
-               doTest(s, p, "'Sun Mar 03 04:05:06 GMT-05:00 1901'");
-       }
-
-       
//====================================================================================================
-       // testISO8601DTZ - DEFAULT_ISO8601DTZ
-       
//====================================================================================================
-       @Test
-       public void testISO8601DTZ() throws Exception {
-               Class<?> f = DateSwap.ISO8601DTZ.class;
-               WriterSerializer s = new 
JsonSerializer.Simple().addPojoSwaps(f);
-               ReaderParser p = new JsonParser().addPojoSwaps(f);
-               doTest(s, p, "'1901-03-03T09:05:06Z'");
-       }
-
-       
//====================================================================================================
-       // testRFC2822DT - DEFAULT_RFC2822DT
-       
//====================================================================================================
-       @Test
-       public void testRFC2822DT() throws Exception {
-               Class<?> f = DateSwap.RFC2822DT.class;
-               WriterSerializer s = new 
JsonSerializer.Simple().addPojoSwaps(f);
-               ReaderParser p = new JsonParser().addPojoSwaps(f);
-               doTest(s, p, "'Sun, 03 Mar 1901 04:05:06 -0500'");
-       }
-
-       
//====================================================================================================
-       // testLong - DEFAULT_LONG
-       
//====================================================================================================
-       @Test
-       public void testLong() throws Exception {
-               Class<?> f = DateLongSwap.class;
-               WriterSerializer s = new 
JsonSerializer.Simple().addPojoSwaps(f);
-               ReaderParser p = new JsonParser().addPojoSwaps(f);
-               doTest(s, p, "-2172149694000");
-       }
-
-       
//====================================================================================================
-       // testMap - DEFAULT_MAP
-       
//====================================================================================================
-       @Test
-       public void testMap() throws Exception {
-               Class<?> f = DateMapSwap.class;
-               WriterSerializer s = new 
JsonSerializer.Simple().addPojoSwaps(f);
-               ReaderParser p = new JsonParser().addPojoSwaps(f);
-               doTest(s, p, "{time:-2172149694000}");
-       }
-
-       public void doTest(WriterSerializer s, ReaderParser p, String expected) 
throws Exception {
-               Date d;
-               String actual;
-
-               d = testDate;
-               actual = s.serialize(d);
-               assertEquals(expected, actual);
-               d = p.parse(actual, Date.class);
-               assertEquals(1, d.getYear());
-               assertEquals(2, d.getMonth());
-               assertEquals(3, d.getDate());
-               assertEquals(4, d.getHours());
-               assertEquals(5, d.getMinutes());
-               assertEquals(6, d.getSeconds());
-
-               d = new java.sql.Date(testDate.getTime());
-               actual = s.serialize(d);
-               assertEquals(expected, actual);
-               d = p.parse(actual, java.sql.Date.class);
-               assertEquals(1, d.getYear());
-               assertEquals(2, d.getMonth());
-               assertEquals(3, d.getDate());
-
-               d = new java.sql.Time(testDate.getTime());
-               actual = s.serialize(d);
-               assertEquals(expected, actual);
-               d = p.parse(actual, java.sql.Time.class);
-               assertEquals(4, d.getHours());
-               assertEquals(5, d.getMinutes());
-               assertEquals(6, d.getSeconds());
-
-               d = new java.sql.Timestamp(testDate.getTime());
-               actual = s.serialize(d);
-               assertEquals(expected, actual);
-               d = p.parse(actual, java.sql.Timestamp.class);
-               assertEquals(1, d.getYear());
-               assertEquals(2, d.getMonth());
-               assertEquals(3, d.getDate());
-               assertEquals(4, d.getHours());
-               assertEquals(5, d.getMinutes());
-               assertEquals(6, d.getSeconds());
-       }
-
-       
//====================================================================================================
-       
//====================================================================================================
-       @Test
-       public void testBeanWithDate() throws Exception {
-               A testBeanA = new A().init();
-
-               final String jsonData = new JsonSerializer().addPojoSwaps(
-                       DateSwap.ISO8601DT.class).serialize(testBeanA);
-               final ObjectMap data = new JsonParser().addPojoSwaps(
-                       DateSwap.ISO8601DT.class).parse(jsonData, 
ObjectMap.class);
-
-               final DateSwap.ISO8601DT dateSwap = new DateSwap.ISO8601DT();
-               // this works
-               final String sValue = data.getString("birthday"); //$NON-NLS-1$
-               dateSwap.unswap(null, sValue, 
data.getBeanSession().getClassMeta(Date.class));
-               // this does not work
-               data.get(dateSwap, "birthday"); //$NON-NLS-1$
-       }
-
-       public static class A {
-               public Date birthday;
-
-               public A init() {
-                       birthday = new Date();
-                       return this;
-               }
-       }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e6b71aca/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java
 
b/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java
new file mode 100644
index 0000000..6d641bd
--- /dev/null
+++ 
b/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java
@@ -0,0 +1,571 @@
+// 
***************************************************************************************************************************
+// * 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.Collection;
+import java.util.Date;
+import java.util.Locale;
+
+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 DateSwap class.
+ */
+@RunWith(Parameterized.class)
+@SuppressWarnings({"javadoc"})
+public class DateSwapComboTest extends ComboTest {
+
+       private static Date singleDate = CalendarSwapTest.testDate.getTime();
+       
+       private static Date[] dateArray = new Date[]{singleDate};
+       
+       private static ObjectMap dateMap = new ObjectMap().append("foo", 
singleDate);
+       
+
+       @Parameterized.Parameters
+       public static Collection<Object[]> getParameters() {
+               return Arrays.asList(new Object[][] {
+                       {
+                               "DateSwap.ToString/singleDate",
+                               singleDate,
+                               DateSwap.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",
+                       },
+                       {
+                               "DateSwap.ToString/dateArray",
+                               dateArray,
+                               DateSwap.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",
+                       },
+                       {
+                               "DateSwap.ToString",
+                               dateMap,
+                               DateSwap.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",
+                       },
+                       {
+                               "DateSwap.ISO8601DT/singleDate",
+                               singleDate,
+                               DateSwap.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",
+                       },
+                       {
+                               "DateSwap.ISO8601DT/dateArray",
+                               dateArray,
+                               DateSwap.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",
+                       },
+                       {
+                               "DateSwap.ISO8601DT/dateMap",
+                               dateMap,
+                               DateSwap.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",
+                       },
+                       {
+                               "DateSwap.RFC2822DTZ/singleDate",
+                               singleDate,
+                               DateSwap.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",
+                       },
+                       {
+                               "DateSwap.RFC2822DTZ/dateArray",
+                               dateArray,
+                               DateSwap.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",
+                       },
+                       {
+                               "DateSwap.RFC2822DTZ/dateMap",
+                               dateMap,
+                               DateSwap.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",
+                       },
+                       {
+                               "DateLongSwap",
+                               singleDate,
+                               DateLongSwap.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",
+                       },
+                       {
+                               "DateLongSwap/dateArray",
+                               dateArray,
+                               DateLongSwap.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",
+                       },
+                       {
+                               "DateLongSwap/dateMap",
+                               dateMap,
+                               DateLongSwap.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",
+                       },
+                       {
+                               "DateMapSwap/singleDate",
+                               singleDate,
+                               DateMapSwap.class,
+                               /* Json */              "{time:-2172116928000}",
+                               /* JsonT */             "{time:-2172116928000}",
+                               /* JsonR */             "{\n\ttime: 
-2172116928000\n}",
+                               /* Xml */               "<object><time 
_type='number'>-2172116928000</time></object>",
+                               /* XmlT */              "<object><time 
t='number'>-2172116928000</time></object>",
+                               /* XmlR */              "<object>\n\t<time 
_type='number'>-2172116928000</time>\n</object>\n",
+                               /* XmlNs */             "<object><time 
_type='number'>-2172116928000</time></object>",
+                               /* Html */              
"<table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table>",
+                               /* HtmlT */             
"<table><tr><td>time</td><td><number>-2172116928000</number></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</table>\n",
+                               /* Uon */               "(time=-2172116928000)",
+                               /* UonT */              "(time=-2172116928000)",
+                               /* UonR */              
"(\n\ttime=-2172116928000\n)",
+                               /* UrlEnc */    "time=-2172116928000",
+                               /* UrlEncT */   "time=-2172116928000",
+                               /* UrlEncR */   "time=-2172116928000",
+                               /* MsgPack */   
"81A474696D65D3FFFFFE0643BDFA00",
+                               /* MsgPackT */  
"81A474696D65D3FFFFFE0643BDFA00",
+                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n</rdf:Description>\n</rdf:RDF>\n",
+                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n</rdf:Description>\n</rdf:RDF>\n",
+                               /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:time>-2172116928000</jp:time>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                       },
+                       {
+                               "DateMapSwap/dateArray",
+                               dateArray,
+                               DateMapSwap.class,
+                               /* Json */              
"[{time:-2172116928000}]",
+                               /* JsonT */             
"[{time:-2172116928000}]",
+                               /* JsonR */             "[\n\t{\n\t\ttime: 
-2172116928000\n\t}\n]",
+                               /* Xml */               "<array><object><time 
_type='number'>-2172116928000</time></object></array>",
+                               /* XmlT */              "<array><object><time 
t='number'>-2172116928000</time></object></array>",
+                               /* XmlR */              
"<array>\n\t<object>\n\t\t<time 
_type='number'>-2172116928000</time>\n\t</object>\n</array>\n",
+                               /* XmlNs */             "<array><object><time 
_type='number'>-2172116928000</time></object></array>",
+                               /* Html */              
"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></li></ul>",
+                               /* HtmlT */             
"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></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</table>\n\t</li>\n</ul>\n",
+                               /* Uon */               
"@((time=-2172116928000))",
+                               /* UonT */              
"@((time=-2172116928000))",
+                               /* UonR */              
"@(\n\t(\n\t\ttime=-2172116928000\n\t)\n)",
+                               /* UrlEnc */    
"_value=@((time=-2172116928000))",
+                               /* UrlEncT */   
"_value=@((time=-2172116928000))",
+                               /* UrlEncR */   
"_value=@(\n\t(\n\t\ttime=-2172116928000\n\t)\n)",
+                               /* MsgPack */   
"9181A474696D65D3FFFFFE0643BDFA00",
+                               /* MsgPackT */  
"9181A474696D65D3FFFFFE0643BDFA00",
+                               /* RdfXml */    "<rdf:RDF>\n<rdf:Seq>\n<rdf:li 
rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\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</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    
</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+                       },
+                       {
+                               "DateMapSwap/dateMap",
+                               dateMap,
+                               DateMapSwap.class,
+                               /* Json */              
"{foo:{time:-2172116928000}}",
+                               /* JsonT */             
"{foo:{time:-2172116928000}}",
+                               /* JsonR */             "{\n\tfoo: {\n\t\ttime: 
-2172116928000\n\t}\n}",
+                               /* Xml */               "<object><foo 
_type='object'><time _type='number'>-2172116928000</time></foo></object>",
+                               /* XmlT */              "<object><foo 
t='object'><time t='number'>-2172116928000</time></foo></object>",
+                               /* XmlR */              "<object>\n\t<foo 
_type='object'>\n\t\t<time 
_type='number'>-2172116928000</time>\n\t</foo>\n</object>\n",
+                               /* XmlNs */             "<object><foo 
_type='object'><time _type='number'>-2172116928000</time></foo></object>",
+                               /* Html */              
"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></td></tr></table>",
+                               /* HtmlT */             
"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></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</table>\n\t\t</td>\n\t</tr>\n</table>\n",
+                               /* Uon */               
"(foo=(time=-2172116928000))",
+                               /* UonT */              
"(foo=(time=-2172116928000))",
+                               /* UonR */              
"(\n\tfoo=(\n\t\ttime=-2172116928000\n\t)\n)",
+                               /* UrlEnc */    "foo=(time=-2172116928000)",
+                               /* UrlEncT */   "foo=(time=-2172116928000)",
+                               /* UrlEncR */   
"foo=(\n\ttime=-2172116928000\n)",
+                               /* MsgPack */   
"81A3666F6F81A474696D65D3FFFFFE0643BDFA00",
+                               /* MsgPackT */  
"81A3666F6F81A474696D65D3FFFFFE0643BDFA00",
+                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:foo 
rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\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: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:foo>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                       },
+                       {
+                               "DateSwap.DateMedium/singleDate",
+                               singleDate,
+                               DateSwap.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",
+                       },
+                       {
+                               "DateSwap.DateMedium/dateArray",
+                               dateArray,
+                               DateSwap.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",
+                       },
+                       {
+                               "DateSwap.DateMedium/dateMap",
+                               dateMap,
+                               DateSwap.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 DateSwapComboTest(
+                       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);
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e6b71aca/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapTest.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapTest.java 
b/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapTest.java
new file mode 100755
index 0000000..b0b57f0
--- /dev/null
+++ 
b/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapTest.java
@@ -0,0 +1,61 @@
+// 
***************************************************************************************************************************
+// * 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.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.json.*;
+import org.junit.*;
+
+@SuppressWarnings({"javadoc"})
+public class DateSwapTest {
+
+       @BeforeClass
+       public static void beforeClass() {
+               TestUtils.setTimeZone("GMT-5");
+       }
+
+       @AfterClass
+       public static void afterClass() {
+               TestUtils.unsetTimeZone();
+       }
+
+       
//====================================================================================================
+       
//====================================================================================================
+       @Test
+       public void testBeanWithDate() throws Exception {
+               A testBeanA = new A().init();
+
+               final String jsonData = new JsonSerializer().addPojoSwaps(
+                       DateSwap.ISO8601DT.class).serialize(testBeanA);
+               final ObjectMap data = new JsonParser().addPojoSwaps(
+                       DateSwap.ISO8601DT.class).parse(jsonData, 
ObjectMap.class);
+
+               final DateSwap.ISO8601DT dateSwap = new DateSwap.ISO8601DT();
+               // this works
+               final String sValue = data.getString("birthday"); //$NON-NLS-1$
+               dateSwap.unswap(null, sValue, 
data.getBeanSession().getClassMeta(Date.class));
+               // this does not work
+               data.get(dateSwap, "birthday"); //$NON-NLS-1$
+       }
+
+       public static class A {
+               public Date birthday;
+
+               public A init() {
+                       birthday = new Date();
+                       return this;
+               }
+       }
+}
\ No newline at end of file


Reply via email to