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