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 2016/08/09 17:15:33 UTC
[12/44] incubator-juneau git commit: Rename CT_* testcases.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_CalendarTransform.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_CalendarTransform.java b/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_CalendarTransform.java
deleted file mode 100755
index f3a6180..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_CalendarTransform.java
+++ /dev/null
@@ -1,696 +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.apache.juneau.jena.RdfCommonContext.*;
-import static org.apache.juneau.serializer.SerializerContext.*;
-import static org.junit.Assert.*;
-
-import java.net.*;
-import java.text.*;
-import java.util.*;
-
-import javax.xml.bind.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.html.*;
-import org.apache.juneau.jena.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.transform.*;
-import org.apache.juneau.urlencoding.*;
-import org.apache.juneau.xml.*;
-import org.junit.*;
-
-public class CT_CalendarTransform {
-
- private static Calendar testDate = new GregorianCalendar(TimeZone.getTimeZone("PST"));
- static {
- testDate.setTimeInMillis(0);
- testDate.set(1901, 2, 3, 10, 11, 12);
- }
-
- private RdfSerializer getRdfSerializer() {
- return new RdfSerializer()
- .setProperty(SERIALIZER_quoteChar, '\'')
- .setProperty(SERIALIZER_useIndentation, false)
- .setProperty(RDF_rdfxml_allowBadUris, true)
- .setProperty(RDF_rdfxml_showDoctypeDeclaration, false)
- .setProperty(RDF_rdfxml_showXmlDeclaration, false);
- }
-
- private String stripRdf(String s) {
- return s.replaceFirst("<rdf:RDF[^>]+>\\s*", "").replaceAll("</rdf:RDF>$", "").trim().replaceAll("[\\r\\n]", "");
- }
-
- //====================================================================================================
- // testTimezone - Make sure timezone on calendar is preserved.
- //====================================================================================================
- @Test
- public void testTimezone() throws Exception {
- PojoTransform<Calendar,String> f;
- String s;
- Calendar c;
-
- //--------------------
- // ISO8601DT
- //--------------------
- f = new CalendarTransform.ISO8601DT();
-
- s = "2001-01-31T12:34:56Z";
- c = DatatypeConverter.parseDateTime(s);
- assertEquals(s, f.transform(c));
-
- s = "2001-01-31T09:34:56-03:00";
- c = DatatypeConverter.parseDateTime(s);
- assertEquals(s, f.transform(c));
-
- s = "2001-01-31T06:34:56-06:00";
- c = DatatypeConverter.parseDateTime(s);
- assertEquals(s, f.transform(c));
-
-
- //--------------------
- // ISO8601DTZ
- //--------------------
- f = new CalendarTransform.ISO8601DTZ();
-
- s = "2001-01-31T12:34:56Z";
- c = DatatypeConverter.parseDateTime(s);
- assertEquals(s, f.transform(c));
-
- s = "2001-01-31T09:34:56-03:00";
- c = DatatypeConverter.parseDateTime(s);
- assertEquals("2001-01-31T12:34:56Z", f.transform(c));
-
- s = "2001-01-31T06:34:56-06:00";
- c = DatatypeConverter.parseDateTime(s);
- assertEquals("2001-01-31T12:34:56Z", f.transform(c));
-
- //--------------------
- // RFC2822DTZ
- //--------------------
- f = new CalendarTransform.RFC2822DT();
-
- s = "2001-01-31T12:34:56Z";
- c = DatatypeConverter.parseDateTime(s);
- assertEquals("Wed, 31 Jan 2001 12:34:56 +0000", f.transform(c));
-
- s = "2001-01-31T09:34:56-03:00";
- c = DatatypeConverter.parseDateTime(s);
- assertEquals("Wed, 31 Jan 2001 09:34:56 -0300", f.transform(c));
-
- s = "2001-01-31T06:34:56-06:00";
- c = DatatypeConverter.parseDateTime(s);
- assertEquals("Wed, 31 Jan 2001 06:34:56 -0600", f.transform(c));
-
- //--------------------
- // RFC2822DTZ
- //--------------------
- f = new CalendarTransform.RFC2822DTZ();
-
- s = "2001-01-31T12:34:56Z";
- c = DatatypeConverter.parseDateTime(s);
- assertEquals("Wed, 31 Jan 2001 12:34:56 GMT", f.transform(c));
-
- s = "2001-01-31T09:34:56-03:00";
- c = DatatypeConverter.parseDateTime(s);
- assertEquals("Wed, 31 Jan 2001 12:34:56 GMT", f.transform(c));
-
- s = "2001-01-31T06:34:56-06:00";
- c = DatatypeConverter.parseDateTime(s);
- assertEquals("Wed, 31 Jan 2001 12:34:56 GMT", f.transform(c));
- }
-
-
- //====================================================================================================
- // testDefaultStringJson - DEFAULT_STRING, JSON
- //====================================================================================================
- @Test
- public void testDefaultStringJson() throws Exception {
- Class<?> f = CalendarTransform.ToString.class;
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
- ReaderParser p = new JsonParser().addTransforms(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 = CalendarTransform.ToString.class;
- WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
- ReaderParser p = new XmlParser().addTransforms(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 = CalendarTransform.ToString.class;
- WriterSerializer s = new HtmlSerializer().addTransforms(f);
- ReaderParser p = new HtmlParser().addTransforms(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 = CalendarTransform.ToString.class;
- WriterSerializer s = new UonSerializer.Encoding().addTransforms(f);
- ReaderParser p = UonParser.DEFAULT_DECODING.clone().addTransforms(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 = CalendarTransform.ToString.class;
- WriterSerializer s = new UrlEncodingSerializer().addTransforms(f);
- ReaderParser p = UrlEncodingParser.DEFAULT.clone().addTransforms(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 = CalendarTransform.ToString.class;
- WriterSerializer s = getRdfSerializer().addTransforms(f);
- ReaderParser p = new RdfParser.Xml().addTransforms(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 = CalendarTransform.ISO8601DT.class;
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
- ReaderParser p = new JsonParser().addTransforms(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 = CalendarTransform.ISO8601DT.class;
- WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
- ReaderParser p = new XmlParser().addTransforms(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 = CalendarTransform.ISO8601DT.class;
- WriterSerializer s = new HtmlSerializer().addTransforms(f);
- ReaderParser p = new HtmlParser().addTransforms(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 = CalendarTransform.ISO8601DT.class;
- WriterSerializer s = new UonSerializer().addTransforms(f);
- ReaderParser p = new UonParser().addTransforms(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 = CalendarTransform.ISO8601DT.class;
- WriterSerializer s = new UrlEncodingSerializer().addTransforms(f);
- ReaderParser p = new UrlEncodingParser().addTransforms(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 = CalendarTransform.ISO8601DT.class;
- WriterSerializer s = getRdfSerializer().addTransforms(f);
- ReaderParser p = new RdfParser.Xml().addTransforms(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 = CalendarTransform.RFC2822DTZ.class;
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
- ReaderParser p = new JsonParser().addTransforms(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 = CalendarTransform.RFC2822DTZ.class;
- WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
- ReaderParser p = new XmlParser().addTransforms(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 = CalendarTransform.RFC2822DTZ.class;
- WriterSerializer s = new HtmlSerializer().addTransforms(f);
- ReaderParser p = new HtmlParser().addTransforms(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 = CalendarTransform.RFC2822DTZ.class;
- WriterSerializer s = new UonSerializer.Encoding().addTransforms(f);
- ReaderParser p = UonParser.DEFAULT_DECODING.clone().addTransforms(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 = CalendarTransform.RFC2822DTZ.class;
- WriterSerializer s = new UrlEncodingSerializer().addTransforms(f);
- ReaderParser p = UrlEncodingParser.DEFAULT.clone().addTransforms(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 = CalendarTransform.RFC2822DTZ.class;
- WriterSerializer s = getRdfSerializer().addTransforms(f);
- ReaderParser p = new RdfParser.Xml().addTransforms(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 = CalendarLongTransform.class;
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
- ReaderParser p = new JsonParser().addTransforms(f);
- doTest(s, p, true, "-2172116928000");
- }
-
- //====================================================================================================
- // testDefaultLongXml - DEFAULT_LONG, XML
- //====================================================================================================
- @Test
- public void testDefaultLongXml() throws Exception {
- Class<?> f = CalendarLongTransform.class;
- WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
- ReaderParser p = new XmlParser().addTransforms(f);
- doTest(s, p, true, "<number>-2172116928000</number>");
- }
-
- //====================================================================================================
- // testDefaultLongHtml - DEFAULT_LONG, HTML
- //====================================================================================================
- @Test
- public void testDefaultLongHtml() throws Exception {
- Class<?> f = CalendarLongTransform.class;
- WriterSerializer s = new HtmlSerializer().addTransforms(f);
- ReaderParser p = new HtmlParser().addTransforms(f);
- doTest(s, p, true, "<number>-2172116928000</number>");
- }
-
- //====================================================================================================
- // testDefaultLongUrlParam - DEFAULT_LONG, UON
- //====================================================================================================
- @Test
- public void testDefaultLongUon() throws Exception {
- Class<?> f = CalendarLongTransform.class;
- WriterSerializer s = UonSerializer.DEFAULT_SIMPLE.clone().addTransforms(f);
- ReaderParser p = new UonParser().addTransforms(f);
- doTest(s, p, true, "-2172116928000");
- }
-
- //====================================================================================================
- // testDefaultLongUrlParam - DEFAULT_LONG, URL-ENCODING
- //====================================================================================================
- @Test
- public void testDefaultLongUrlEncoding() throws Exception {
- Class<?> f = CalendarLongTransform.class;
- WriterSerializer s = UrlEncodingSerializer.DEFAULT_SIMPLE.clone().addTransforms(f);
- ReaderParser p = new UrlEncodingParser().addTransforms(f);
- doTest(s, p, true, "_value=-2172116928000");
- }
-
- //====================================================================================================
- // testDefaultLongRdfXml - DEFAULT_LONG, RDF/XML
- //====================================================================================================
- @Test
- public void testDefaultLongRdfXml() throws Exception {
- Class<?> f = CalendarLongTransform.class;
- WriterSerializer s = getRdfSerializer().addTransforms(f);
- ReaderParser p = new RdfParser.Xml().addTransforms(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 = CalendarMapTransform.class;
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
- ReaderParser p = new JsonParser().addTransforms(f);
- doTest(s, p, true, "{time:-2172116928000,timeZone:'PST'}");
- }
-
- //====================================================================================================
- // testDefaultMapXml - DEFAULT_MAP, XML
- //====================================================================================================
- @Test
- public void testDefaultMapXml() throws Exception {
- Class<?> f = CalendarMapTransform.class;
- WriterSerializer s = new XmlSerializer.SimpleXmlJsonSq().addTransforms(f);
- ReaderParser p = new XmlParser().addTransforms(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 = CalendarMapTransform.class;
- WriterSerializer s = new HtmlSerializer.Sq().addTransforms(f);
- ReaderParser p = new HtmlParser().addTransforms(f);
- doTest(s, p, true, "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>time</string></td><td><number>-2172116928000</number></td></tr><tr><td><string>timeZone</string></td><td><string>PST</string></td></tr></table>");
- }
-
- //====================================================================================================
- // testDefaultMapUrlParam - DEFAULT_MAP, UON
- //====================================================================================================
- @Test
- public void testDefaultMapUon() throws Exception {
- Class<?> f = CalendarMapTransform.class;
- WriterSerializer s = UonSerializer.DEFAULT_SIMPLE.clone().addTransforms(f);
- ReaderParser p = new UonParser().addTransforms(f);
- doTest(s, p, true, "(time=-2172116928000,timeZone=PST)");
- }
-
- //====================================================================================================
- // testDefaultMapUrlParam - DEFAULT_MAP, URL-ENCODING
- //====================================================================================================
- @Test
- public void testDefaultMapUrlEncoding() throws Exception {
- Class<?> f = CalendarMapTransform.class;
- WriterSerializer s = UrlEncodingSerializer.DEFAULT_SIMPLE.clone().addTransforms(f);
- ReaderParser p = new UrlEncodingParser().addTransforms(f);
- doTest(s, p, true, "time=-2172116928000&timeZone=PST");
- }
-
- //====================================================================================================
- // testDefaultMapRdfXml - DEFAULT_MAP, RDF/XML
- //====================================================================================================
- @Test
- public void testDefaultMapRdfXml() throws Exception {
- Class<?> f = CalendarMapTransform.class;
- WriterSerializer s = getRdfSerializer().addTransforms(f);
- ReaderParser p = new RdfParser.Xml().addTransforms(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 = CalendarTransform.Medium.class;
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
- ReaderParser p = new JsonParser().addTransforms(f);
- doTest(s, p, false, "'Mar 3, 1901'");
- }
-
- //====================================================================================================
- // testDefaultMediumXml - DEFAULT_MEDIUM, XML
- //====================================================================================================
- @Test
- public void testDefaultMediumXml() throws Exception {
- Class<?> f = CalendarTransform.Medium.class;
- WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
- ReaderParser p = new XmlParser().addTransforms(f);
- doTest(s, p, false, "<string>Mar 3, 1901</string>");
- }
-
- //====================================================================================================
- // testDefaultMediumHtml - DEFAULT_MEDIUM, HTML
- //====================================================================================================
- @Test
- public void testDefaultMediumHtml() throws Exception {
- Class<?> f = CalendarTransform.Medium.class;
- WriterSerializer s = new HtmlSerializer().addTransforms(f);
- ReaderParser p = new HtmlParser().addTransforms(f);
- doTest(s, p, false, "<string>Mar 3, 1901</string>");
- }
-
- //====================================================================================================
- // testDefaultMediumUrlParam - DEFAULT_MEDIUM, UON
- //====================================================================================================
- @Test
- public void testDefaultMediumUon() throws Exception {
- Class<?> f = CalendarTransform.Medium.class;
- WriterSerializer s = new UonSerializer.Encoding().addTransforms(f);
- ReaderParser p = UonParser.DEFAULT_DECODING.clone().addTransforms(f);
- doTest(s, p, false, "Mar+3,+1901");
- }
-
- //====================================================================================================
- // testDefaultMediumUrlParam - DEFAULT_MEDIUM, URL-ENCODING
- //====================================================================================================
- @Test
- public void testDefaultMediumUrlEncoding() throws Exception {
- Class<?> f = CalendarTransform.Medium.class;
- WriterSerializer s = new UrlEncodingSerializer().addTransforms(f);
- ReaderParser p = UrlEncodingParser.DEFAULT.clone().addTransforms(f);
- doTest(s, p, false, "_value=Mar+3,+1901");
- }
-
- //====================================================================================================
- // testDefaultMediumRdfXml - DEFAULT_MEDIUM, RDF/XML
- //====================================================================================================
- @Test
- public void testDefaultMediumRdfXml() throws Exception {
- Class<?> f = CalendarTransform.Medium.class;
- WriterSerializer s = getRdfSerializer().addTransforms(f);
- ReaderParser p = new RdfParser.Xml().addTransforms(f);
- doTest(s, p, false, "<rdf:Description><j:value>Mar 3, 1901</j:value></rdf:Description>");
- }
-
- //====================================================================================================
- // Test 7a - BeanProperty.filter, JSON
- //====================================================================================================
- @Test
- public void testBeanProperyFilterJson() throws Exception {
- WriterSerializer s = JsonSerializer.DEFAULT_LAX;
- ReaderParser p = JsonParser.DEFAULT;
-
- Calendar c = testDate;
- A t = new A(c);
- String json = s.serialize(t);
- assertEquals("{d1:'1901-03-03T18:11:12Z',d2:'Sun, 03 Mar 1901 18:11:12 GMT',d3:-2172116928000}", json);
- t = p.parse(json, A.class);
- assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
- }
-
- //====================================================================================================
- // Test 7b - BeanProperty.filter, XML
- //====================================================================================================
- @Test
- public void testBeanProperyFilterXml() throws Exception {
- WriterSerializer s = XmlSerializer.DEFAULT_SIMPLE_SQ;
- ReaderParser p = XmlParser.DEFAULT;
-
- Calendar c = testDate;
- A t = new A(c);
- String xml = s.serialize(t);
- assertEquals("<object><d1>1901-03-03T18:11:12Z</d1><d2>Sun, 03 Mar 1901 18:11:12 GMT</d2><d3>-2172116928000</d3></object>", xml);
- t = p.parse(xml, A.class);
- assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
- }
-
- //====================================================================================================
- // Test 7c - BeanProperty.filter, HTML
- //====================================================================================================
- @Test
- public void testBeanProperyFilterHtml() throws Exception {
- WriterSerializer s = HtmlSerializer.DEFAULT_SQ;
- ReaderParser p = HtmlParser.DEFAULT;
-
- Calendar c = testDate;
- A t = new A(c);
- String html = s.serialize(t);
- assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>d1</string></td><td><string>1901-03-03T18:11:12Z</string></td></tr><tr><td><string>d2</string></td><td><string>Sun, 03 Mar 1901 18:11:12 GMT</string></td></tr><tr><td><string>d3</string></td><td><number>-2172116928000</number></td></tr></table>", html);
- t = p.parse(html, A.class);
- assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
- }
-
- //====================================================================================================
- // Test 7d - BeanProperty.filter, UON
- //====================================================================================================
- @Test
- public void testBeanProperyFilterUon() throws Exception {
- WriterSerializer s = UonSerializer.DEFAULT_SIMPLE_ENCODING;
- ReaderParser p = UonParser.DEFAULT;
- ReaderParser pe = UonParser.DEFAULT_DECODING;
-
- Calendar c = testDate;
- A t = new A(c);
- String url = s.serialize(t);
- assertEquals("(d1=1901-03-03T18:11:12Z,d2=Sun~,+03+Mar+1901+18:11:12+GMT,d3=-2172116928000)", url);
- t = pe.parse(url, A.class);
- assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
- url = URLDecoder.decode(url, "UTF-8");
- t = p.parse(url, A.class);
- assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
- }
-
- //====================================================================================================
- // Test 7d - BeanProperty.filter, URL-ENCODING
- //====================================================================================================
- @Test
- public void testBeanProperyFilterUrlEncoding() throws Exception {
- WriterSerializer s = UrlEncodingSerializer.DEFAULT_SIMPLE;
- ReaderParser p = UrlEncodingParser.DEFAULT;
-
- Calendar c = testDate;
- A t = new A(c);
- String url = s.serialize(t);
- assertEquals("d1=1901-03-03T18:11:12Z&d2=Sun,+03+Mar+1901+18:11:12+GMT&d3=-2172116928000", url);
- t = p.parse(url, A.class);
- assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
- url = URLDecoder.decode(url, "UTF-8");
- t = p.parse(url, A.class);
- assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
- assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
- }
-
- //====================================================================================================
- // Test 7f - BeanProperty.filter, RDF/XML
- //====================================================================================================
- @Test
- public void testBeanProperyFilterRdfXmlWithNs() throws Exception {
- WriterSerializer s = getRdfSerializer();
-
- Calendar c = testDate;
- A t = new A(c);
- String rdf = stripRdf(s.serialize(t));
- assertEquals("<rdf:Description><jp:d1>1901-03-03T18:11:12Z</jp:d1><jp:d2>Sun, 03 Mar 1901 18:11:12 GMT</jp:d2><jp:d3>-2172116928000</jp:d3></rdf:Description>", rdf);
- }
-
- @Bean(sort=true)
- public static class A {
- @BeanProperty(transform=CalendarTransform.ISO8601DTZ.class)
- public Calendar d1;
- private Calendar d2, d3;
- public A(Calendar date) {
- d1 = d2 = d3 = date;
- }
-
- public A() {}
-
- @BeanProperty(transform=CalendarTransform.RFC2822DTZ.class)
- public Calendar getD2() {
- return d2;
- }
- public void setD2(Calendar d2) {
- this.d2 = d2;
- }
-
- public Calendar getD3() {
- return d3;
- }
- @BeanProperty(transform=CalendarLongTransform.class)
- public void setD3(Calendar d3) {
- 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
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_DateFilter.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_DateFilter.java b/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_DateFilter.java
deleted file mode 100755
index e516d7e..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_DateFilter.java
+++ /dev/null
@@ -1,170 +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.text.*;
-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")
-public class CT_DateFilter {
-
- private static TimeZone tz;
-
- @BeforeClass
- public static void beforeClass() {
- tz = TimeZone.getDefault();
- TimeZone.setDefault(TimeZone.getTimeZone("GMT-5"));
- }
-
- @AfterClass
- public static void afterClass() {
- TimeZone.setDefault(tz);
- }
-
- private Date testDate = new Date(1, 2, 3, 4, 5, 6);
- private String tz1 = new SimpleDateFormat("zzz").format(testDate);
-
- //====================================================================================================
- // testString - DEFAULT_STRING
- //====================================================================================================
- @Test
- public void testString() throws Exception {
- Class<?> f = DateTransform.ToString.class;
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
- ReaderParser p = new JsonParser().addTransforms(f);
- doTest(s, p, "'Sun Mar 03 04:05:06 "+tz1+" 1901'");
- }
-
- //====================================================================================================
- // testISO8601DTZ - DEFAULT_ISO8601DTZ
- //====================================================================================================
- @Test
- public void testISO8601DTZ() throws Exception {
- Class<?> f = DateTransform.ISO8601DTZ.class;
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
- ReaderParser p = new JsonParser().addTransforms(f);
- doTest(s, p, "'1901-03-03T09:05:06Z'");
- }
-
- //====================================================================================================
- // testRFC2822DT - DEFAULT_RFC2822DT
- //====================================================================================================
- @Test
- public void testRFC2822DT() throws Exception {
- Class<?> f = DateTransform.RFC2822DT.class;
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
- ReaderParser p = new JsonParser().addTransforms(f);
- doTest(s, p, "'Sun, 03 Mar 1901 04:05:06 "+tz1+"'");
- }
-
- //====================================================================================================
- // testLong - DEFAULT_LONG
- //====================================================================================================
- @Test
- public void testLong() throws Exception {
- Class<?> f = DateLongTransform.class;
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
- ReaderParser p = new JsonParser().addTransforms(f);
- doTest(s, p, "-2172149694000");
- }
-
- //====================================================================================================
- // testMap - DEFAULT_MAP
- //====================================================================================================
- @Test
- public void testMap() throws Exception {
- Class<?> f = DateMapTransform.class;
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
- ReaderParser p = new JsonParser().addTransforms(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().addTransforms(
- DateTransform.ISO8601DT.class).serialize(testBeanA);
- final ObjectMap data = new JsonParser().addTransforms(
- DateTransform.ISO8601DT.class).parse(jsonData, ObjectMap.class);
-
- final DateTransform.ISO8601DT dateTransform = new DateTransform.ISO8601DT();
- // this works
- final String sValue = data.getString("birthday"); //$NON-NLS-1$
- dateTransform.normalize(sValue, data.getBeanContext().getClassMeta(Date.class));
- // this does not work
- data.get(dateTransform, "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/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_EnumerationTransform.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_EnumerationTransform.java b/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_EnumerationTransform.java
deleted file mode 100755
index b5845b2..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_EnumerationTransform.java
+++ /dev/null
@@ -1,35 +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.json.*;
-import org.apache.juneau.serializer.*;
-import org.junit.*;
-
-public class CT_EnumerationTransform {
-
- //====================================================================================================
- // test
- //====================================================================================================
- @Test
- public void test() throws Exception {
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(EnumerationTransform.class);
- Vector<String> v = new Vector<String>(Arrays.asList(new String[]{"foo","bar","baz"}));
- Enumeration<String> e = v.elements();
- assertEquals("['foo','bar','baz']", s.serialize(e));
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_IteratorTransform.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_IteratorTransform.java b/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_IteratorTransform.java
deleted file mode 100755
index 2ad4ac1..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_IteratorTransform.java
+++ /dev/null
@@ -1,37 +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.json.*;
-import org.apache.juneau.serializer.*;
-import org.junit.*;
-
-public class CT_IteratorTransform {
-
- //====================================================================================================
- // test
- //====================================================================================================
- @Test
- public void test() throws Exception {
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(IteratorTransform.class);
-
- // Iterators
- List<String> l = new ArrayList<String>(Arrays.asList(new String[]{"foo","bar","baz"}));
- Iterator<String> i = l.iterator();
- assertEquals("['foo','bar','baz']", s.serialize(i));
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_ReaderFilter.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_ReaderFilter.java b/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_ReaderFilter.java
deleted file mode 100755
index 6c19252..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CT_ReaderFilter.java
+++ /dev/null
@@ -1,47 +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.io.*;
-import java.util.*;
-
-import org.apache.juneau.json.*;
-import org.apache.juneau.serializer.*;
-import org.junit.*;
-
-public class CT_ReaderFilter {
-
- //====================================================================================================
- // test
- //====================================================================================================
- @Test
- public void test() throws Exception {
- WriterSerializer s = new JsonSerializer.Simple().addTransforms(ReaderTransform.Json.class);
-
- Reader r;
- Map<String,Object> m;
-
- r = new StringReader("{foo:'bar',baz:'quz'}");
- m = new HashMap<String,Object>();
- m.put("X", r);
- assertEquals("{X:{foo:'bar',baz:'quz'}}", s.serialize(m));
-
- s.addTransforms(ReaderTransform.Xml.class);
- r = new StringReader("<object><foo type='string'>bar</foo><baz type='string'>quz</baz></object>");
- m = new HashMap<String,Object>();
- m.put("X", r);
- assertEquals("{X:{foo:'bar',baz:'quz'}}", s.serialize(m));
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CalendarTransformTest.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CalendarTransformTest.java b/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CalendarTransformTest.java
new file mode 100755
index 0000000..8580b9e
--- /dev/null
+++ b/org.apache.juneau/src/test/java/org/apache/juneau/transforms/CalendarTransformTest.java
@@ -0,0 +1,696 @@
+/***************************************************************************************************************************
+ * 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.apache.juneau.jena.RdfCommonContext.*;
+import static org.apache.juneau.serializer.SerializerContext.*;
+import static org.junit.Assert.*;
+
+import java.net.*;
+import java.text.*;
+import java.util.*;
+
+import javax.xml.bind.*;
+
+import org.apache.juneau.annotation.*;
+import org.apache.juneau.html.*;
+import org.apache.juneau.jena.*;
+import org.apache.juneau.json.*;
+import org.apache.juneau.parser.*;
+import org.apache.juneau.serializer.*;
+import org.apache.juneau.transform.*;
+import org.apache.juneau.urlencoding.*;
+import org.apache.juneau.xml.*;
+import org.junit.*;
+
+public class CalendarTransformTest {
+
+ private static Calendar testDate = new GregorianCalendar(TimeZone.getTimeZone("PST"));
+ static {
+ testDate.setTimeInMillis(0);
+ testDate.set(1901, 2, 3, 10, 11, 12);
+ }
+
+ private RdfSerializer getRdfSerializer() {
+ return new RdfSerializer()
+ .setProperty(SERIALIZER_quoteChar, '\'')
+ .setProperty(SERIALIZER_useIndentation, false)
+ .setProperty(RDF_rdfxml_allowBadUris, true)
+ .setProperty(RDF_rdfxml_showDoctypeDeclaration, false)
+ .setProperty(RDF_rdfxml_showXmlDeclaration, false);
+ }
+
+ private String stripRdf(String s) {
+ return s.replaceFirst("<rdf:RDF[^>]+>\\s*", "").replaceAll("</rdf:RDF>$", "").trim().replaceAll("[\\r\\n]", "");
+ }
+
+ //====================================================================================================
+ // testTimezone - Make sure timezone on calendar is preserved.
+ //====================================================================================================
+ @Test
+ public void testTimezone() throws Exception {
+ PojoTransform<Calendar,String> f;
+ String s;
+ Calendar c;
+
+ //--------------------
+ // ISO8601DT
+ //--------------------
+ f = new CalendarTransform.ISO8601DT();
+
+ s = "2001-01-31T12:34:56Z";
+ c = DatatypeConverter.parseDateTime(s);
+ assertEquals(s, f.transform(c));
+
+ s = "2001-01-31T09:34:56-03:00";
+ c = DatatypeConverter.parseDateTime(s);
+ assertEquals(s, f.transform(c));
+
+ s = "2001-01-31T06:34:56-06:00";
+ c = DatatypeConverter.parseDateTime(s);
+ assertEquals(s, f.transform(c));
+
+
+ //--------------------
+ // ISO8601DTZ
+ //--------------------
+ f = new CalendarTransform.ISO8601DTZ();
+
+ s = "2001-01-31T12:34:56Z";
+ c = DatatypeConverter.parseDateTime(s);
+ assertEquals(s, f.transform(c));
+
+ s = "2001-01-31T09:34:56-03:00";
+ c = DatatypeConverter.parseDateTime(s);
+ assertEquals("2001-01-31T12:34:56Z", f.transform(c));
+
+ s = "2001-01-31T06:34:56-06:00";
+ c = DatatypeConverter.parseDateTime(s);
+ assertEquals("2001-01-31T12:34:56Z", f.transform(c));
+
+ //--------------------
+ // RFC2822DTZ
+ //--------------------
+ f = new CalendarTransform.RFC2822DT();
+
+ s = "2001-01-31T12:34:56Z";
+ c = DatatypeConverter.parseDateTime(s);
+ assertEquals("Wed, 31 Jan 2001 12:34:56 +0000", f.transform(c));
+
+ s = "2001-01-31T09:34:56-03:00";
+ c = DatatypeConverter.parseDateTime(s);
+ assertEquals("Wed, 31 Jan 2001 09:34:56 -0300", f.transform(c));
+
+ s = "2001-01-31T06:34:56-06:00";
+ c = DatatypeConverter.parseDateTime(s);
+ assertEquals("Wed, 31 Jan 2001 06:34:56 -0600", f.transform(c));
+
+ //--------------------
+ // RFC2822DTZ
+ //--------------------
+ f = new CalendarTransform.RFC2822DTZ();
+
+ s = "2001-01-31T12:34:56Z";
+ c = DatatypeConverter.parseDateTime(s);
+ assertEquals("Wed, 31 Jan 2001 12:34:56 GMT", f.transform(c));
+
+ s = "2001-01-31T09:34:56-03:00";
+ c = DatatypeConverter.parseDateTime(s);
+ assertEquals("Wed, 31 Jan 2001 12:34:56 GMT", f.transform(c));
+
+ s = "2001-01-31T06:34:56-06:00";
+ c = DatatypeConverter.parseDateTime(s);
+ assertEquals("Wed, 31 Jan 2001 12:34:56 GMT", f.transform(c));
+ }
+
+
+ //====================================================================================================
+ // testDefaultStringJson - DEFAULT_STRING, JSON
+ //====================================================================================================
+ @Test
+ public void testDefaultStringJson() throws Exception {
+ Class<?> f = CalendarTransform.ToString.class;
+ WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
+ ReaderParser p = new JsonParser().addTransforms(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 = CalendarTransform.ToString.class;
+ WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
+ ReaderParser p = new XmlParser().addTransforms(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 = CalendarTransform.ToString.class;
+ WriterSerializer s = new HtmlSerializer().addTransforms(f);
+ ReaderParser p = new HtmlParser().addTransforms(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 = CalendarTransform.ToString.class;
+ WriterSerializer s = new UonSerializer.Encoding().addTransforms(f);
+ ReaderParser p = UonParser.DEFAULT_DECODING.clone().addTransforms(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 = CalendarTransform.ToString.class;
+ WriterSerializer s = new UrlEncodingSerializer().addTransforms(f);
+ ReaderParser p = UrlEncodingParser.DEFAULT.clone().addTransforms(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 = CalendarTransform.ToString.class;
+ WriterSerializer s = getRdfSerializer().addTransforms(f);
+ ReaderParser p = new RdfParser.Xml().addTransforms(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 = CalendarTransform.ISO8601DT.class;
+ WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
+ ReaderParser p = new JsonParser().addTransforms(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 = CalendarTransform.ISO8601DT.class;
+ WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
+ ReaderParser p = new XmlParser().addTransforms(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 = CalendarTransform.ISO8601DT.class;
+ WriterSerializer s = new HtmlSerializer().addTransforms(f);
+ ReaderParser p = new HtmlParser().addTransforms(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 = CalendarTransform.ISO8601DT.class;
+ WriterSerializer s = new UonSerializer().addTransforms(f);
+ ReaderParser p = new UonParser().addTransforms(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 = CalendarTransform.ISO8601DT.class;
+ WriterSerializer s = new UrlEncodingSerializer().addTransforms(f);
+ ReaderParser p = new UrlEncodingParser().addTransforms(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 = CalendarTransform.ISO8601DT.class;
+ WriterSerializer s = getRdfSerializer().addTransforms(f);
+ ReaderParser p = new RdfParser.Xml().addTransforms(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 = CalendarTransform.RFC2822DTZ.class;
+ WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
+ ReaderParser p = new JsonParser().addTransforms(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 = CalendarTransform.RFC2822DTZ.class;
+ WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
+ ReaderParser p = new XmlParser().addTransforms(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 = CalendarTransform.RFC2822DTZ.class;
+ WriterSerializer s = new HtmlSerializer().addTransforms(f);
+ ReaderParser p = new HtmlParser().addTransforms(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 = CalendarTransform.RFC2822DTZ.class;
+ WriterSerializer s = new UonSerializer.Encoding().addTransforms(f);
+ ReaderParser p = UonParser.DEFAULT_DECODING.clone().addTransforms(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 = CalendarTransform.RFC2822DTZ.class;
+ WriterSerializer s = new UrlEncodingSerializer().addTransforms(f);
+ ReaderParser p = UrlEncodingParser.DEFAULT.clone().addTransforms(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 = CalendarTransform.RFC2822DTZ.class;
+ WriterSerializer s = getRdfSerializer().addTransforms(f);
+ ReaderParser p = new RdfParser.Xml().addTransforms(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 = CalendarLongTransform.class;
+ WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
+ ReaderParser p = new JsonParser().addTransforms(f);
+ doTest(s, p, true, "-2172116928000");
+ }
+
+ //====================================================================================================
+ // testDefaultLongXml - DEFAULT_LONG, XML
+ //====================================================================================================
+ @Test
+ public void testDefaultLongXml() throws Exception {
+ Class<?> f = CalendarLongTransform.class;
+ WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
+ ReaderParser p = new XmlParser().addTransforms(f);
+ doTest(s, p, true, "<number>-2172116928000</number>");
+ }
+
+ //====================================================================================================
+ // testDefaultLongHtml - DEFAULT_LONG, HTML
+ //====================================================================================================
+ @Test
+ public void testDefaultLongHtml() throws Exception {
+ Class<?> f = CalendarLongTransform.class;
+ WriterSerializer s = new HtmlSerializer().addTransforms(f);
+ ReaderParser p = new HtmlParser().addTransforms(f);
+ doTest(s, p, true, "<number>-2172116928000</number>");
+ }
+
+ //====================================================================================================
+ // testDefaultLongUrlParam - DEFAULT_LONG, UON
+ //====================================================================================================
+ @Test
+ public void testDefaultLongUon() throws Exception {
+ Class<?> f = CalendarLongTransform.class;
+ WriterSerializer s = UonSerializer.DEFAULT_SIMPLE.clone().addTransforms(f);
+ ReaderParser p = new UonParser().addTransforms(f);
+ doTest(s, p, true, "-2172116928000");
+ }
+
+ //====================================================================================================
+ // testDefaultLongUrlParam - DEFAULT_LONG, URL-ENCODING
+ //====================================================================================================
+ @Test
+ public void testDefaultLongUrlEncoding() throws Exception {
+ Class<?> f = CalendarLongTransform.class;
+ WriterSerializer s = UrlEncodingSerializer.DEFAULT_SIMPLE.clone().addTransforms(f);
+ ReaderParser p = new UrlEncodingParser().addTransforms(f);
+ doTest(s, p, true, "_value=-2172116928000");
+ }
+
+ //====================================================================================================
+ // testDefaultLongRdfXml - DEFAULT_LONG, RDF/XML
+ //====================================================================================================
+ @Test
+ public void testDefaultLongRdfXml() throws Exception {
+ Class<?> f = CalendarLongTransform.class;
+ WriterSerializer s = getRdfSerializer().addTransforms(f);
+ ReaderParser p = new RdfParser.Xml().addTransforms(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 = CalendarMapTransform.class;
+ WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
+ ReaderParser p = new JsonParser().addTransforms(f);
+ doTest(s, p, true, "{time:-2172116928000,timeZone:'PST'}");
+ }
+
+ //====================================================================================================
+ // testDefaultMapXml - DEFAULT_MAP, XML
+ //====================================================================================================
+ @Test
+ public void testDefaultMapXml() throws Exception {
+ Class<?> f = CalendarMapTransform.class;
+ WriterSerializer s = new XmlSerializer.SimpleXmlJsonSq().addTransforms(f);
+ ReaderParser p = new XmlParser().addTransforms(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 = CalendarMapTransform.class;
+ WriterSerializer s = new HtmlSerializer.Sq().addTransforms(f);
+ ReaderParser p = new HtmlParser().addTransforms(f);
+ doTest(s, p, true, "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>time</string></td><td><number>-2172116928000</number></td></tr><tr><td><string>timeZone</string></td><td><string>PST</string></td></tr></table>");
+ }
+
+ //====================================================================================================
+ // testDefaultMapUrlParam - DEFAULT_MAP, UON
+ //====================================================================================================
+ @Test
+ public void testDefaultMapUon() throws Exception {
+ Class<?> f = CalendarMapTransform.class;
+ WriterSerializer s = UonSerializer.DEFAULT_SIMPLE.clone().addTransforms(f);
+ ReaderParser p = new UonParser().addTransforms(f);
+ doTest(s, p, true, "(time=-2172116928000,timeZone=PST)");
+ }
+
+ //====================================================================================================
+ // testDefaultMapUrlParam - DEFAULT_MAP, URL-ENCODING
+ //====================================================================================================
+ @Test
+ public void testDefaultMapUrlEncoding() throws Exception {
+ Class<?> f = CalendarMapTransform.class;
+ WriterSerializer s = UrlEncodingSerializer.DEFAULT_SIMPLE.clone().addTransforms(f);
+ ReaderParser p = new UrlEncodingParser().addTransforms(f);
+ doTest(s, p, true, "time=-2172116928000&timeZone=PST");
+ }
+
+ //====================================================================================================
+ // testDefaultMapRdfXml - DEFAULT_MAP, RDF/XML
+ //====================================================================================================
+ @Test
+ public void testDefaultMapRdfXml() throws Exception {
+ Class<?> f = CalendarMapTransform.class;
+ WriterSerializer s = getRdfSerializer().addTransforms(f);
+ ReaderParser p = new RdfParser.Xml().addTransforms(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 = CalendarTransform.Medium.class;
+ WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
+ ReaderParser p = new JsonParser().addTransforms(f);
+ doTest(s, p, false, "'Mar 3, 1901'");
+ }
+
+ //====================================================================================================
+ // testDefaultMediumXml - DEFAULT_MEDIUM, XML
+ //====================================================================================================
+ @Test
+ public void testDefaultMediumXml() throws Exception {
+ Class<?> f = CalendarTransform.Medium.class;
+ WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
+ ReaderParser p = new XmlParser().addTransforms(f);
+ doTest(s, p, false, "<string>Mar 3, 1901</string>");
+ }
+
+ //====================================================================================================
+ // testDefaultMediumHtml - DEFAULT_MEDIUM, HTML
+ //====================================================================================================
+ @Test
+ public void testDefaultMediumHtml() throws Exception {
+ Class<?> f = CalendarTransform.Medium.class;
+ WriterSerializer s = new HtmlSerializer().addTransforms(f);
+ ReaderParser p = new HtmlParser().addTransforms(f);
+ doTest(s, p, false, "<string>Mar 3, 1901</string>");
+ }
+
+ //====================================================================================================
+ // testDefaultMediumUrlParam - DEFAULT_MEDIUM, UON
+ //====================================================================================================
+ @Test
+ public void testDefaultMediumUon() throws Exception {
+ Class<?> f = CalendarTransform.Medium.class;
+ WriterSerializer s = new UonSerializer.Encoding().addTransforms(f);
+ ReaderParser p = UonParser.DEFAULT_DECODING.clone().addTransforms(f);
+ doTest(s, p, false, "Mar+3,+1901");
+ }
+
+ //====================================================================================================
+ // testDefaultMediumUrlParam - DEFAULT_MEDIUM, URL-ENCODING
+ //====================================================================================================
+ @Test
+ public void testDefaultMediumUrlEncoding() throws Exception {
+ Class<?> f = CalendarTransform.Medium.class;
+ WriterSerializer s = new UrlEncodingSerializer().addTransforms(f);
+ ReaderParser p = UrlEncodingParser.DEFAULT.clone().addTransforms(f);
+ doTest(s, p, false, "_value=Mar+3,+1901");
+ }
+
+ //====================================================================================================
+ // testDefaultMediumRdfXml - DEFAULT_MEDIUM, RDF/XML
+ //====================================================================================================
+ @Test
+ public void testDefaultMediumRdfXml() throws Exception {
+ Class<?> f = CalendarTransform.Medium.class;
+ WriterSerializer s = getRdfSerializer().addTransforms(f);
+ ReaderParser p = new RdfParser.Xml().addTransforms(f);
+ doTest(s, p, false, "<rdf:Description><j:value>Mar 3, 1901</j:value></rdf:Description>");
+ }
+
+ //====================================================================================================
+ // Test 7a - BeanProperty.filter, JSON
+ //====================================================================================================
+ @Test
+ public void testBeanProperyFilterJson() throws Exception {
+ WriterSerializer s = JsonSerializer.DEFAULT_LAX;
+ ReaderParser p = JsonParser.DEFAULT;
+
+ Calendar c = testDate;
+ A t = new A(c);
+ String json = s.serialize(t);
+ assertEquals("{d1:'1901-03-03T18:11:12Z',d2:'Sun, 03 Mar 1901 18:11:12 GMT',d3:-2172116928000}", json);
+ t = p.parse(json, A.class);
+ assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
+ }
+
+ //====================================================================================================
+ // Test 7b - BeanProperty.filter, XML
+ //====================================================================================================
+ @Test
+ public void testBeanProperyFilterXml() throws Exception {
+ WriterSerializer s = XmlSerializer.DEFAULT_SIMPLE_SQ;
+ ReaderParser p = XmlParser.DEFAULT;
+
+ Calendar c = testDate;
+ A t = new A(c);
+ String xml = s.serialize(t);
+ assertEquals("<object><d1>1901-03-03T18:11:12Z</d1><d2>Sun, 03 Mar 1901 18:11:12 GMT</d2><d3>-2172116928000</d3></object>", xml);
+ t = p.parse(xml, A.class);
+ assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
+ }
+
+ //====================================================================================================
+ // Test 7c - BeanProperty.filter, HTML
+ //====================================================================================================
+ @Test
+ public void testBeanProperyFilterHtml() throws Exception {
+ WriterSerializer s = HtmlSerializer.DEFAULT_SQ;
+ ReaderParser p = HtmlParser.DEFAULT;
+
+ Calendar c = testDate;
+ A t = new A(c);
+ String html = s.serialize(t);
+ assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>d1</string></td><td><string>1901-03-03T18:11:12Z</string></td></tr><tr><td><string>d2</string></td><td><string>Sun, 03 Mar 1901 18:11:12 GMT</string></td></tr><tr><td><string>d3</string></td><td><number>-2172116928000</number></td></tr></table>", html);
+ t = p.parse(html, A.class);
+ assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
+ }
+
+ //====================================================================================================
+ // Test 7d - BeanProperty.filter, UON
+ //====================================================================================================
+ @Test
+ public void testBeanProperyFilterUon() throws Exception {
+ WriterSerializer s = UonSerializer.DEFAULT_SIMPLE_ENCODING;
+ ReaderParser p = UonParser.DEFAULT;
+ ReaderParser pe = UonParser.DEFAULT_DECODING;
+
+ Calendar c = testDate;
+ A t = new A(c);
+ String url = s.serialize(t);
+ assertEquals("(d1=1901-03-03T18:11:12Z,d2=Sun~,+03+Mar+1901+18:11:12+GMT,d3=-2172116928000)", url);
+ t = pe.parse(url, A.class);
+ assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
+ url = URLDecoder.decode(url, "UTF-8");
+ t = p.parse(url, A.class);
+ assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
+ }
+
+ //====================================================================================================
+ // Test 7d - BeanProperty.filter, URL-ENCODING
+ //====================================================================================================
+ @Test
+ public void testBeanProperyFilterUrlEncoding() throws Exception {
+ WriterSerializer s = UrlEncodingSerializer.DEFAULT_SIMPLE;
+ ReaderParser p = UrlEncodingParser.DEFAULT;
+
+ Calendar c = testDate;
+ A t = new A(c);
+ String url = s.serialize(t);
+ assertEquals("d1=1901-03-03T18:11:12Z&d2=Sun,+03+Mar+1901+18:11:12+GMT&d3=-2172116928000", url);
+ t = p.parse(url, A.class);
+ assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
+ url = URLDecoder.decode(url, "UTF-8");
+ t = p.parse(url, A.class);
+ assertEquals(t.d1.getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
+ assertEquals(t.getD3().getTime().getTime(), c.getTime().getTime());
+ }
+
+ //====================================================================================================
+ // Test 7f - BeanProperty.filter, RDF/XML
+ //====================================================================================================
+ @Test
+ public void testBeanProperyFilterRdfXmlWithNs() throws Exception {
+ WriterSerializer s = getRdfSerializer();
+
+ Calendar c = testDate;
+ A t = new A(c);
+ String rdf = stripRdf(s.serialize(t));
+ assertEquals("<rdf:Description><jp:d1>1901-03-03T18:11:12Z</jp:d1><jp:d2>Sun, 03 Mar 1901 18:11:12 GMT</jp:d2><jp:d3>-2172116928000</jp:d3></rdf:Description>", rdf);
+ }
+
+ @Bean(sort=true)
+ public static class A {
+ @BeanProperty(transform=CalendarTransform.ISO8601DTZ.class)
+ public Calendar d1;
+ private Calendar d2, d3;
+ public A(Calendar date) {
+ d1 = d2 = d3 = date;
+ }
+
+ public A() {}
+
+ @BeanProperty(transform=CalendarTransform.RFC2822DTZ.class)
+ public Calendar getD2() {
+ return d2;
+ }
+ public void setD2(Calendar d2) {
+ this.d2 = d2;
+ }
+
+ public Calendar getD3() {
+ return d3;
+ }
+ @BeanProperty(transform=CalendarLongTransform.class)
+ public void setD3(Calendar d3) {
+ 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