View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.juneau.a.rttests;
18  
19  import org.apache.juneau.*;
20  import org.apache.juneau.html.*;
21  import org.apache.juneau.json.*;
22  import org.apache.juneau.msgpack.*;
23  import org.apache.juneau.uon.*;
24  import org.apache.juneau.urlencoding.*;
25  import org.apache.juneau.xml.*;
26  
27  /**
28   * Tests designed to serialize and parse objects to make sure we end up
29   * with the same objects for all serializers and parsers.
30   */
31  public abstract class RoundTripTest_Base extends TestBase {
32  
33  	private static RoundTrip_Tester[] TESTERS = {
34  		tester(1, "Json - default")
35  			.serializer(JsonSerializer.create().keepNullProperties().addBeanTypes().addRootType())
36  			.parser(JsonParser.create())
37  			.build(),
38  		tester(2, "Json - lax")
39  			.serializer(JsonSerializer.create().json5().keepNullProperties().addBeanTypes().addRootType())
40  			.parser(JsonParser.create())
41  			.build(),
42  		tester(3, "Json - lax, readable")
43  			.serializer(JsonSerializer.create().json5().ws().keepNullProperties().addBeanTypes().addRootType())
44  			.parser(JsonParser.create())
45  			.build(),
46  		tester(4, "Xml - namespaces, validation, readable")
47  			.serializer(XmlSerializer.create().ns().sq().keepNullProperties().addNamespaceUrisToRoot().useWhitespace().addBeanTypes().addRootType())
48  			.parser(XmlParser.create())
49  			.validateXmlWhitespace()
50  			.validateXml()
51  			.build(),
52  		tester(5, "Xml - no namespaces, validation")
53  			.serializer(XmlSerializer.create().sq().keepNullProperties().addBeanTypes().addRootType())
54  			.parser(XmlParser.create())
55  			.validateXmlWhitespace()
56  			.build(),
57  		tester(6, "Html - default")
58  			.serializer(HtmlSerializer.create().keepNullProperties().addBeanTypes().addRootType())
59  			.parser(HtmlParser.create())
60  			.validateXmlWhitespace()
61  			.build(),
62  		tester(7, "Html - readable")
63  			.serializer(HtmlSerializer.create().sq().ws().keepNullProperties().addBeanTypes().addRootType())
64  			.parser(HtmlParser.create())
65  			.validateXmlWhitespace()
66  			.build(),
67  		tester(8, "Html - with key/value headers")
68  			.serializer(HtmlSerializer.create().addKeyValueTableHeaders().addBeanTypes().addRootType())
69  			.parser(HtmlParser.create())
70  			.validateXmlWhitespace()
71  			.build(),
72  		tester(9, "Uon - default")
73  			.serializer(UonSerializer.create().keepNullProperties().addBeanTypes().addRootType())
74  			.parser(UonParser.create())
75  			.build(),
76  		tester(10, "Uon - readable")
77  			.serializer(UonSerializer.create().ws().keepNullProperties().addBeanTypes().addRootType())
78  			.parser(UonParser.create())
79  			.build(),
80  		tester(11, "Uon - encoded")
81  			.serializer(UonSerializer.create().encoding().keepNullProperties().addBeanTypes().addRootType())
82  			.parser(UonParser.create().decoding())
83  			.build(),
84  		tester(12, "UrlEncoding - default")
85  			.serializer(UrlEncodingSerializer.create().keepNullProperties().addBeanTypes().addRootType())
86  			.parser(UrlEncodingParser.create())
87  			.build(),
88  		tester(13, "UrlEncoding - readable")
89  			.serializer(UrlEncodingSerializer.create().ws().keepNullProperties().addBeanTypes().addRootType())
90  			.parser(UrlEncodingParser.create())
91  			.build(),
92  		tester(14, "UrlEncoding - expanded params")
93  			.serializer(UrlEncodingSerializer.create().expandedParams().addBeanTypes().addRootType())
94  			.parser(UrlEncodingParser.create().expandedParams())
95  			.build(),
96  		tester(15, "MsgPack")
97  			.serializer(MsgPackSerializer.create().keepNullProperties().addBeanTypes().addRootType())
98  			.parser(MsgPackParser.create())
99  			.build(),
100 		tester(16, "Json schema")
101 			.serializer(JsonSchemaSerializer.create().keepNullProperties().addBeanTypes().addRootType())
102 			.returnOriginalObject()
103 			.build(),
104 	};
105 
106 	static RoundTrip_Tester[]  testers() {
107 		return TESTERS;
108 	}
109 
110 	protected static RoundTrip_Tester.Builder tester(int index, String label) {
111 		return RoundTrip_Tester.create(index, label);
112 	}
113 }