| // *************************************************************************************************************************** |
| // * 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.html; |
| |
| import static org.apache.juneau.html.annotation.HtmlFormat.*; |
| import static org.apache.juneau.testutils.TestUtils.*; |
| import static org.junit.Assert.*; |
| |
| import java.lang.reflect.*; |
| import java.util.*; |
| |
| import org.apache.juneau.annotation.*; |
| import org.apache.juneau.html.annotation.*; |
| import org.apache.juneau.xml.annotation.*; |
| import org.junit.*; |
| import org.junit.runner.*; |
| import org.junit.runners.*; |
| |
| @RunWith(Parameterized.class) |
| @SuppressWarnings({"serial","rawtypes","unchecked"}) |
| @FixMethodOrder(MethodSorters.NAME_ASCENDING) |
| public class BasicHtmlTest { |
| |
| private static final Class<?>[] ANNOTATED_CLASSES = { |
| BeanWithWhitespaceTextFields2.class, BeanWithWhitespaceTextPwsFields2.class, BeanWithWhitespaceMixedFields2.class, BeanWithWhitespaceMixedPwsFields2.class |
| }; |
| private static final HtmlSerializer |
| s1 = HtmlSerializer.DEFAULT_SQ.builder().addRootType().applyAnnotations(ANNOTATED_CLASSES).build(), |
| s2 = HtmlSerializer.DEFAULT_SQ_READABLE.builder().addRootType().applyAnnotations(ANNOTATED_CLASSES).build(), |
| s3 = HtmlSerializer.DEFAULT_SQ.builder().applyAnnotations(ANNOTATED_CLASSES).build(); |
| private static final HtmlParser parser = HtmlParser.DEFAULT.builder().applyAnnotations(ANNOTATED_CLASSES).build(); |
| |
| @Parameterized.Parameters |
| public static Collection<Object[]> getParameters() { |
| return Arrays.asList(new Object[][] { |
| |
| { /* 0 */ |
| new Input<String>( |
| "SimpleTypes-1", |
| String.class, |
| "foo", |
| "<string>foo</string>", |
| "<string>foo</string>", |
| "<string>foo</string>" |
| ) |
| { |
| @Override |
| public void verify(String o) { |
| assertInstanceOf(String.class, o); |
| } |
| } |
| }, |
| { /* 1 */ |
| new Input<Boolean>( |
| "SimpleTypes-2", |
| boolean.class, |
| true, |
| "<boolean>true</boolean>", |
| "<boolean>true</boolean>", |
| "<boolean>true</boolean>" |
| ) |
| { |
| @Override |
| public void verify(Boolean o) { |
| assertInstanceOf(Boolean.class, o); |
| } |
| } |
| }, |
| { /* 2 */ |
| new Input<Integer>( |
| "SimpleTypes-3", |
| int.class, |
| 123, |
| "<number>123</number>", |
| "<number>123</number>", |
| "<number>123</number>" |
| ) |
| { |
| @Override |
| public void verify(Integer o) { |
| assertInstanceOf(Integer.class, o); |
| } |
| } |
| }, |
| { /* 3 */ |
| new Input<Float>( |
| "SimpleTypes-4", |
| float.class, |
| 1.23f, |
| "<number>1.23</number>", |
| "<number>1.23</number>", |
| "<number>1.23</number>" |
| ) |
| { |
| @Override |
| public void verify(Float o) { |
| assertInstanceOf(Float.class, o); |
| } |
| } |
| }, |
| { /* 4 */ |
| new Input<String>( |
| "SimpleTypes-5", |
| String.class, |
| null, |
| "<null/>", |
| "<null/>", |
| "<null/>" |
| ) |
| }, |
| { /* 5 */ |
| new Input<String[]>( |
| "Arrays-1", |
| String[].class, |
| new String[]{"foo"}, |
| "<ul><li>foo</li></ul>", |
| "<ul>\n\t<li>foo</li>\n</ul>\n", |
| "<ul><li>foo</li></ul>" |
| ) |
| { |
| @Override |
| public void verify(String[] o) { |
| assertInstanceOf(String.class, o[0]); |
| } |
| } |
| }, |
| { /* 6 */ |
| new Input<>( |
| "Arrays-2", |
| String[].class, |
| new String[]{null}, |
| "<ul><li><null/></li></ul>", |
| "<ul>\n\t<li><null/></li>\n</ul>\n", |
| "<ul><li><null/></li></ul>" |
| ) |
| }, |
| { /* 7 */ |
| new Input<Object[]>( |
| "Arrays-3", |
| Object[].class, |
| new Object[]{"foo",123,true}, |
| "<ul><li>foo</li><li><number>123</number></li><li><boolean>true</boolean></li></ul>", |
| "<ul>\n\t<li>foo</li>\n\t<li><number>123</number></li>\n\t<li><boolean>true</boolean></li>\n</ul>\n", |
| "<ul><li>foo</li><li><number>123</number></li><li><boolean>true</boolean></li></ul>" |
| ) |
| { |
| @Override |
| public void verify(Object[] o) { |
| assertInstanceOf(String.class, o[0]); |
| assertInstanceOf(Integer.class, o[1]); |
| assertInstanceOf(Boolean.class, o[2]); |
| } |
| } |
| }, |
| { /* 8 */ |
| new Input<int[]>( |
| "Arrays-4", |
| int[].class, |
| new int[]{123}, |
| "<ul><li><number>123</number></li></ul>", |
| "<ul>\n\t<li><number>123</number></li>\n</ul>\n", |
| "<ul><li>123</li></ul>" |
| ) |
| { |
| @Override |
| public void verify(int[] o) { |
| assertInstanceOf(int[].class, o); |
| } |
| } |
| }, |
| { /* 9 */ |
| new Input<boolean[]>( |
| "Arrays-5", |
| boolean[].class, |
| new boolean[]{true}, |
| "<ul><li><boolean>true</boolean></li></ul>", |
| "<ul>\n\t<li><boolean>true</boolean></li>\n</ul>\n", |
| "<ul><li>true</li></ul>" |
| ) |
| { |
| @Override |
| public void verify(boolean[] o) { |
| assertInstanceOf(boolean[].class, o); |
| } |
| } |
| }, |
| { /* 10 */ |
| new Input<String[][]>( |
| "Arrays-6", |
| String[][].class, |
| new String[][]{{"foo"}}, |
| "<ul><li><ul><li>foo</li></ul></li></ul>", |
| "<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>foo</li>\n\t\t</ul>\n\t</li>\n</ul>\n", |
| "<ul><li><ul><li>foo</li></ul></li></ul>" |
| ) |
| { |
| @Override |
| public void verify(String[][] o) { |
| assertInstanceOf(String[][].class, o); |
| } |
| } |
| }, |
| { /* 11 */ |
| new Input<Map<String,String>>( |
| "MapWithStrings", |
| MapWithStrings.class, |
| new MapWithStrings().append("k1", "v1").append("k2", null), |
| "<table>" |
| +"<tr>" |
| +"<td>k1</td>" |
| +"<td>v1</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k2</td>" |
| +"<td><null/></td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>k1</td>\n" |
| +"\t\t<td>v1</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>k2</td>\n" |
| +"\t\t<td><null/></td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>k1</td>" |
| +"<td>v1</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k2</td>" |
| +"<td><null/></td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(Map<String,String> o) { |
| assertInstanceOf(String.class, o.get("k1")); |
| } |
| } |
| }, |
| { /* 12 */ |
| new Input<Map<String,Number>>( |
| "MapsWithNumbers", |
| MapWithNumbers.class, |
| new MapWithNumbers().append("k1", 123).append("k2", 1.23).append("k3", null), |
| "<table>" |
| +"<tr>" |
| +"<td>k1</td>" |
| +"<td><number>123</number></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k2</td>" |
| +"<td><number>1.23</number></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k3</td>" |
| +"<td><null/></td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>k1</td>\n" |
| +"\t\t<td><number>123</number></td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>k2</td>\n" |
| +"\t\t<td><number>1.23</number></td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>k3</td>\n" |
| +"\t\t<td><null/></td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>k1</td>" |
| +"<td>123</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k2</td>" |
| +"<td>1.23</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k3</td>" |
| +"<td><null/></td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(Map<String,Number> o) { |
| assertInstanceOf(Number.class, o.get("k1")); |
| } |
| } |
| }, |
| { /* 13 */ |
| new Input<Map<String,Object>>( |
| "MapWithObjects", |
| getType(Map.class,String.class,Object.class), |
| new MapWithObjects().append("k1", "v1").append("k2", 123).append("k3", 1.23).append("k4", true).append("k5", null), |
| "<table>" |
| +"<tr>" |
| +"<td>k1</td>" |
| +"<td>v1</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k2</td>" |
| +"<td><number>123</number></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k3</td>" |
| +"<td><number>1.23</number></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k4</td>" |
| +"<td><boolean>true</boolean></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k5</td>" |
| +"<td><null/></td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>k1</td>\n" |
| +"\t\t<td>v1</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>k2</td>\n" |
| +"\t\t<td><number>123</number></td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>k3</td>\n" |
| +"\t\t<td><number>1.23</number></td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>k4</td>\n" |
| +"\t\t<td><boolean>true</boolean></td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>k5</td>\n" |
| +"\t\t<td><null/></td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>k1</td>" |
| +"<td>v1</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k2</td>" |
| +"<td><number>123</number></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k3</td>" |
| +"<td><number>1.23</number></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k4</td>" |
| +"<td><boolean>true</boolean></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k5</td>" |
| +"<td><null/></td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(Map<String,Object> o) { |
| assertInstanceOf(String.class, o.get("k1")); |
| assertInstanceOf(Integer.class, o.get("k2")); |
| assertInstanceOf(Float.class, o.get("k3")); |
| assertInstanceOf(Boolean.class, o.get("k4")); |
| } |
| } |
| }, |
| { /* 14 */ |
| new Input<List<String>>( |
| "ListWithStrings", |
| getType(List.class,String.class), |
| new ListWithStrings().append("foo").append(null), |
| "<ul><li>foo</li><li><null/></li></ul>", |
| "<ul>\n\t<li>foo</li>\n\t<li><null/></li>\n</ul>\n", |
| "<ul><li>foo</li><li><null/></li></ul>" |
| ) |
| { |
| @Override |
| public void verify(List<String> o) { |
| assertInstanceOf(String.class, o.get(0)); |
| } |
| } |
| }, |
| { /* 15 */ |
| new Input<List<Number>>( |
| "ListWithNumbers", |
| ListWithNumbers.class, |
| new ListWithNumbers().append(123).append(1.23).append(null), |
| "<ul><li><number>123</number></li><li><number>1.23</number></li><li><null/></li></ul>", |
| "<ul>\n\t<li><number>123</number></li>\n\t<li><number>1.23</number></li>\n\t<li><null/></li>\n</ul>\n", |
| "<ul><li>123</li><li>1.23</li><li><null/></li></ul>" |
| ) |
| { |
| @Override |
| public void verify(List<Number> o) { |
| assertInstanceOf(Integer.class, o.get(0)); |
| assertInstanceOf(Float.class, o.get(1)); |
| } |
| } |
| }, |
| { /* 16 */ |
| new Input<List<Object>>( |
| "ListWithObjects", |
| getType(List.class,Object.class), |
| new ListWithObjects().append("foo").append(123).append(1.23).append(true).append(null), |
| "<ul><li>foo</li><li><number>123</number></li><li><number>1.23</number></li><li><boolean>true</boolean></li><li><null/></li></ul>", |
| "<ul>\n\t<li>foo</li>\n\t<li><number>123</number></li>\n\t<li><number>1.23</number></li>\n\t<li><boolean>true</boolean></li>\n\t<li><null/></li>\n</ul>\n", |
| "<ul><li>foo</li><li><number>123</number></li><li><number>1.23</number></li><li><boolean>true</boolean></li><li><null/></li></ul>" |
| ) |
| { |
| @Override |
| public void verify(List<Object> o) { |
| assertInstanceOf(String.class, o.get(0)); |
| assertInstanceOf(Integer.class, o.get(1)); |
| assertInstanceOf(Float.class, o.get(2)); |
| assertInstanceOf(Boolean.class, o.get(3)); |
| } |
| } |
| }, |
| { /* 17 */ |
| new Input<BeanWithNormalProperties>( |
| "BeanWithNormalProperties", |
| BeanWithNormalProperties.class, |
| new BeanWithNormalProperties().init(), |
| "<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>123</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>c</td>" |
| +"<td>bar</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>d</td>" |
| +"<td><number>456</number></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>e</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>h</td>" |
| +"<td>qux</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>f</td>" |
| +"<td>" |
| +"<ul>" |
| +"<li>baz</li>" |
| +"</ul>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>g</td>" |
| +"<td>" |
| +"<ul>" |
| +"<li>789</li>" |
| +"</ul>" |
| +"</td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>a</td>\n" |
| +"\t\t<td>foo</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b</td>\n" |
| +"\t\t<td>123</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>c</td>\n" |
| +"\t\t<td>bar</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>d</td>\n" |
| +"\t\t<td><number>456</number></td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>e</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>h</td>\n" |
| +"\t\t\t\t\t<td>qux</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>f</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<ul>\n" |
| +"\t\t\t\t<li>baz</li>\n" |
| +"\t\t\t</ul>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>g</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<ul>\n" |
| +"\t\t\t\t<li>789</li>\n" |
| +"\t\t\t</ul>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>123</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>c</td>" |
| +"<td>bar</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>d</td>" |
| +"<td><number>456</number></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>e</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>h</td>" |
| +"<td>qux</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>f</td>" |
| +"<td>" |
| +"<ul>" |
| +"<li>baz</li>" |
| +"</ul>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>g</td>" |
| +"<td>" |
| +"<ul>" |
| +"<li>789</li>" |
| +"</ul>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithNormalProperties o) { |
| assertInstanceOf(String.class, o.c); |
| assertInstanceOf(Integer.class, o.d); |
| assertInstanceOf(Bean1a.class, o.e); |
| } |
| } |
| }, |
| { /* 18 */ |
| new Input<BeanWithMapProperties>( |
| "BeanWithMapProperties", |
| BeanWithMapProperties.class, |
| new BeanWithMapProperties().init(), |
| "<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k1</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k2</td>" |
| +"<td>123</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>c</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k3</td>" |
| +"<td>bar</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k4</td>" |
| +"<td><number>456</number></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k5</td>" |
| +"<td><boolean>true</boolean></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k6</td>" |
| +"<td><null/></td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>a</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>k1</td>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>k2</td>\n" |
| +"\t\t\t\t\t<td>123</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>c</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>k3</td>\n" |
| +"\t\t\t\t\t<td>bar</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>k4</td>\n" |
| +"\t\t\t\t\t<td><number>456</number></td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>k5</td>\n" |
| +"\t\t\t\t\t<td><boolean>true</boolean></td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>k6</td>\n" |
| +"\t\t\t\t\t<td><null/></td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k1</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k2</td>" |
| +"<td>123</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>c</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k3</td>" |
| +"<td>bar</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k4</td>" |
| +"<td><number>456</number></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k5</td>" |
| +"<td><boolean>true</boolean></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>k6</td>" |
| +"<td><null/></td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithMapProperties o) { |
| assertInstanceOf(String.class, o.a.get("k1")); |
| assertInstanceOf(Integer.class, o.b.get("k2")); |
| assertInstanceOf(String.class, o.c.get("k3")); |
| assertInstanceOf(Integer.class, o.c.get("k4")); |
| assertInstanceOf(Boolean.class, o.c.get("k5")); |
| } |
| } |
| }, |
| { /* 19 */ |
| new Input<BeanWithTypeName>( |
| "BeanWithTypeName", |
| BeanWithTypeName.class, |
| new BeanWithTypeName().init(), |
| "<table _type='X'>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>123</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table _type='X'>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>a</td>\n" |
| +"\t\t<td>123</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b</td>\n" |
| +"\t\t<td>foo</td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>123</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithTypeName o) { |
| assertInstanceOf(BeanWithTypeName.class, o); |
| } |
| } |
| }, |
| { /* 20 */ |
| new Input<BeanWithPropertiesWithTypeNames>( |
| "BeanWithPropertiesWithTypeNames", |
| BeanWithPropertiesWithTypeNames.class, |
| new BeanWithPropertiesWithTypeNames().init(), |
| "<table>" |
| +"<tr>" |
| +"<td>b1</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b2</td>" |
| +"<td>" |
| +"<table _type='B'>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b1</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>b</td>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b2</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='B'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>b</td>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>b1</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b2</td>" |
| +"<td>" |
| +"<table _type='B'>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithPropertiesWithTypeNames o) { |
| assertInstanceOf(B.class, o.b2); |
| } |
| } |
| }, |
| { /* 21 */ |
| new Input<BeanWithPropertiesWithArrayTypeNames>( |
| "BeanWithPropertiesWithArrayTypeNames", |
| BeanWithPropertiesWithArrayTypeNames.class, |
| new BeanWithPropertiesWithArrayTypeNames().init(), |
| "<table>" |
| +"<tr>" |
| +"<td>b1</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>b</th>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b2</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>b</th>" |
| +"</tr>" |
| +"<tr _type='B'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b3</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>b</th>" |
| +"</tr>" |
| +"<tr _type='B'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b1</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='array'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<th>b</th>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b2</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='array'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<th>b</th>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t\t<tr _type='B'>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b3</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='array'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<th>b</th>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t\t<tr _type='B'>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>b1</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>b</th>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b2</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>b</th>" |
| +"</tr>" |
| +"<tr _type='B'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b3</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>b</th>" |
| +"</tr>" |
| +"<tr _type='B'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithPropertiesWithArrayTypeNames o) { |
| assertInstanceOf(B.class, o.b2[0]); |
| assertInstanceOf(B.class, o.b3[0]); |
| } |
| } |
| }, |
| { /* 22 */ |
| new Input<BeanWithPropertiesWith2dArrayTypeNames>( |
| "BeanWithPropertiesWith2dArrayTypeNames", |
| BeanWithPropertiesWith2dArrayTypeNames.class, |
| new BeanWithPropertiesWith2dArrayTypeNames().init(), |
| "<table>" |
| +"<tr>" |
| +"<td>b1</td>" |
| +"<td>" |
| +"<ul>" |
| +"<li>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>b</th>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</li>" |
| +"</ul>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b2</td>" |
| +"<td>" |
| +"<ul>" |
| +"<li>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>b</th>" |
| +"</tr>" |
| +"<tr _type='B'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</li>" |
| +"</ul>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b3</td>" |
| +"<td>" |
| +"<ul>" |
| +"<li>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>b</th>" |
| +"</tr>" |
| +"<tr _type='B'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</li>" |
| +"</ul>" |
| +"</td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b1</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<ul>\n" |
| +"\t\t\t\t<li>\n" |
| +"\t\t\t\t\t<table _type='array'>\n" |
| +"\t\t\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t\t\t<th>b</th>\n" |
| +"\t\t\t\t\t\t</tr>\n" |
| +"\t\t\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t\t\t</tr>\n" |
| +"\t\t\t\t\t</table>\n" |
| +"\t\t\t\t</li>\n" |
| +"\t\t\t</ul>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b2</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<ul>\n" |
| +"\t\t\t\t<li>\n" |
| +"\t\t\t\t\t<table _type='array'>\n" |
| +"\t\t\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t\t\t<th>b</th>\n" |
| +"\t\t\t\t\t\t</tr>\n" |
| +"\t\t\t\t\t\t<tr _type='B'>\n" |
| +"\t\t\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t\t\t</tr>\n" |
| +"\t\t\t\t\t</table>\n" |
| +"\t\t\t\t</li>\n" |
| +"\t\t\t</ul>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b3</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<ul>\n" |
| +"\t\t\t\t<li>\n" |
| +"\t\t\t\t\t<table _type='array'>\n" |
| +"\t\t\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t\t\t<th>b</th>\n" |
| +"\t\t\t\t\t\t</tr>\n" |
| +"\t\t\t\t\t\t<tr _type='B'>\n" |
| +"\t\t\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t\t\t</tr>\n" |
| +"\t\t\t\t\t</table>\n" |
| +"\t\t\t\t</li>\n" |
| +"\t\t\t</ul>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>b1</td>" |
| +"<td>" |
| +"<ul>" |
| +"<li>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>b</th>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</li>" |
| +"</ul>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b2</td>" |
| +"<td>" |
| +"<ul>" |
| +"<li>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>b</th>" |
| +"</tr>" |
| +"<tr _type='B'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</li>" |
| +"</ul>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b3</td>" |
| +"<td>" |
| +"<ul>" |
| +"<li>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>b</th>" |
| +"</tr>" |
| +"<tr _type='B'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</li>" |
| +"</ul>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithPropertiesWith2dArrayTypeNames o) { |
| assertInstanceOf(B.class, o.b2[0][0]); |
| assertInstanceOf(B.class, o.b3[0][0]); |
| } |
| } |
| }, |
| { /* 23 */ |
| new Input<BeanWithPropertiesWithMapTypeNames>( |
| "BeanWithPropertiesWithMapTypeNames", |
| BeanWithPropertiesWithMapTypeNames.class, |
| new BeanWithPropertiesWithMapTypeNames().init(), |
| "<table>" |
| +"<tr>" |
| +"<td>b1</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k1</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b2</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k2</td>" |
| +"<td>" |
| +"<table _type='B'>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b1</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>k1</td>\n" |
| +"\t\t\t\t\t<td>\n" |
| +"\t\t\t\t\t\t<table>\n" |
| +"\t\t\t\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t\t\t\t<td>b</td>\n" |
| +"\t\t\t\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t\t\t\t</tr>\n" |
| +"\t\t\t\t\t\t</table>\n" |
| +"\t\t\t\t\t</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b2</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>k2</td>\n" |
| +"\t\t\t\t\t<td>\n" |
| +"\t\t\t\t\t\t<table _type='B'>\n" |
| +"\t\t\t\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t\t\t\t<td>b</td>\n" |
| +"\t\t\t\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t\t\t\t</tr>\n" |
| +"\t\t\t\t\t\t</table>\n" |
| +"\t\t\t\t\t</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>b1</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k1</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b2</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k2</td>" |
| +"<td>" |
| +"<table _type='B'>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithPropertiesWithMapTypeNames o) { |
| assertInstanceOf(B.class, o.b1.get("k1")); |
| assertInstanceOf(B.class, o.b2.get("k2")); |
| } |
| } |
| }, |
| { /* 24 */ |
| new Input<LinkBean>( |
| "LinkBean-1", |
| LinkBean.class, |
| new LinkBean().init(), |
| "<a href='http://apache.org'>foo</a>", |
| "<a href='http://apache.org'>foo</a>", |
| "<a href='http://apache.org'>foo</a>" |
| ) |
| { |
| @Override |
| public void verify(LinkBean o) { |
| assertInstanceOf(LinkBean.class, o); |
| } |
| } |
| }, |
| { /* 25 */ |
| new Input<LinkBean[]>( |
| "LinkBean-2", |
| LinkBean[].class, |
| new LinkBean[]{new LinkBean().init(),new LinkBean().init()}, |
| "<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>", |
| "<ul>\n\t<li><a href='http://apache.org'>foo</a></li>\n\t<li><a href='http://apache.org'>foo</a></li>\n</ul>\n", |
| "<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>" |
| ) |
| { |
| @Override |
| public void verify(LinkBean[] o) { |
| assertInstanceOf(LinkBean.class, o[0]); |
| } |
| } |
| }, |
| { /* 26 */ |
| new Input<List<LinkBean>>( |
| "ListWithLinkBeans", |
| ListWithLinkBeans.class, |
| new ListWithLinkBeans().append(new LinkBean().init()).append(new LinkBean().init()), |
| "<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>", |
| "<ul>\n\t<li><a href='http://apache.org'>foo</a></li>\n\t<li><a href='http://apache.org'>foo</a></li>\n</ul>\n", |
| "<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>" |
| ) |
| { |
| @Override |
| public void verify(List<LinkBean> o) { |
| assertInstanceOf(LinkBean.class, o.get(0)); |
| } |
| } |
| }, |
| { /* 27 */ |
| new Input<BeanWithLinkBeanProperties>( |
| "BeanWithLinkBeanProperties", |
| BeanWithLinkBeanProperties.class, |
| new BeanWithLinkBeanProperties().init(), |
| "<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td><a href='http://apache.org'>foo</a></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>" |
| +"<ul>" |
| +"<li><a href='http://apache.org'>foo</a></li>" |
| +"</ul>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>c</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>c1</td>" |
| +"<td><a href='http://apache.org'>foo</a></td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>a</td>\n" |
| +"\t\t<td><a href='http://apache.org'>foo</a></td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<ul>\n" |
| +"\t\t\t\t<li><a href='http://apache.org'>foo</a></li>\n" |
| +"\t\t\t</ul>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>c</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>c1</td>\n" |
| +"\t\t\t\t\t<td><a href='http://apache.org'>foo</a></td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td><a href='http://apache.org'>foo</a></td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>" |
| +"<ul>" |
| +"<li><a href='http://apache.org'>foo</a></li>" |
| +"</ul>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>c</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>c1</td>" |
| +"<td><a href='http://apache.org'>foo</a></td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithLinkBeanProperties o) { |
| assertInstanceOf(LinkBean.class, o.a); |
| assertInstanceOf(LinkBean.class, o.b.get(0)); |
| assertInstanceOf(LinkBean.class, o.c.get("c1")); |
| } |
| } |
| }, |
| { /* 28 */ |
| new Input<BeanWithSpecialCharacters>( |
| "BeanWithSpecialCharacters", |
| BeanWithSpecialCharacters.class, |
| new BeanWithSpecialCharacters().init(), |
| "<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp> </sp> <sp> </sp></td></tr></table>", |
| "<table>\n\t<tr>\n\t\t<td>a</td>\n\t\t<td><sp> </sp> <bs/><ff/><br/><sp> </sp> <sp> </sp></td>\n\t</tr>\n</table>\n", |
| "<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp> </sp> <sp> </sp></td></tr></table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithSpecialCharacters o) { |
| assertInstanceOf(BeanWithSpecialCharacters.class, o); |
| } |
| } |
| }, |
| { /* 29 */ |
| new Input<BeanWithSpecialCharacters>( |
| "BeanWithSpecialCharacters-2", |
| BeanWithSpecialCharacters.class, |
| new BeanWithSpecialCharacters().init(), |
| "<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp> </sp> <sp> </sp></td></tr></table>", |
| |
| "<table>\n" |
| +" <tr>\n" |
| +" <td>a</td>\n" |
| +" <td><sp> </sp> <bs/><ff/><br/><sp> </sp> <sp> </sp></td>\n" |
| +" </tr>\n" |
| +"</table>\n", |
| |
| "<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp> </sp> <sp> </sp></td></tr></table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithSpecialCharacters o) { |
| assertInstanceOf(BeanWithSpecialCharacters.class, o); |
| } |
| } |
| }, |
| { /* 30 */ |
| new Input<BeanWithNullProperties>( |
| "BeanWithNullProperties", |
| BeanWithNullProperties.class, |
| new BeanWithNullProperties(), |
| "<table></table>", |
| "<table>\n</table>\n", |
| "<table></table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithNullProperties o) { |
| assertInstanceOf(BeanWithNullProperties.class, o); |
| } |
| } |
| }, |
| { /* 31 */ |
| new Input<BeanWithAbstractFields>( |
| "BeanWithAbstractFields", |
| BeanWithAbstractFields.class, |
| new BeanWithAbstractFields().init(), |
| "<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>ia</td>" |
| +"<td>" |
| +"<table _type='A'>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>aa</td>" |
| +"<td>" |
| +"<table _type='A'>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>o</td>" |
| +"<td>" |
| +"<table _type='A'>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>a</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>a</td>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>ia</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='A'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>a</td>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>aa</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='A'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>a</td>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>o</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='A'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>a</td>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>ia</td>" |
| +"<td>" |
| +"<table _type='A'>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>aa</td>" |
| +"<td>" |
| +"<table _type='A'>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>o</td>" |
| +"<td>" |
| +"<table _type='A'>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithAbstractFields o) { |
| assertInstanceOf(A.class, o.a); |
| assertInstanceOf(A.class, o.ia); |
| assertInstanceOf(A.class, o.aa); |
| assertInstanceOf(A.class, o.o); |
| } |
| } |
| }, |
| { /* 32 */ |
| new Input<BeanWithAbstractArrayFields>( |
| "BeanWithAbstractArrayFields", |
| BeanWithAbstractArrayFields.class, |
| new BeanWithAbstractArrayFields().init(), |
| "<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>ia1</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr _type='A'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>ia2</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr _type='A'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>aa1</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr _type='A'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>aa2</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr _type='A'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>o1</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr _type='A'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>o2</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr _type='A'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>a</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='array'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<th>a</th>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>ia1</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='array'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<th>a</th>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t\t<tr _type='A'>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>ia2</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='array'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<th>a</th>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t\t<tr _type='A'>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>aa1</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='array'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<th>a</th>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t\t<tr _type='A'>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>aa2</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='array'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<th>a</th>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t\t<tr _type='A'>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>o1</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='array'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<th>a</th>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t\t<tr _type='A'>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>o2</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table _type='array'>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<th>a</th>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t\t<tr _type='A'>\n" |
| +"\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>ia1</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr _type='A'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>ia2</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr _type='A'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>aa1</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr _type='A'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>aa2</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr _type='A'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>o1</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr _type='A'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>o2</td>" |
| +"<td>" |
| +"<table _type='array'>" |
| +"<tr>" |
| +"<th>a</th>" |
| +"</tr>" |
| +"<tr _type='A'>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithAbstractArrayFields o) { |
| assertInstanceOf(A.class, o.a[0]); |
| assertInstanceOf(A.class, o.ia1[0]); |
| assertInstanceOf(A.class, o.ia2[0]); |
| assertInstanceOf(A.class, o.aa1[0]); |
| assertInstanceOf(A.class, o.aa2[0]); |
| assertInstanceOf(A.class, o.o1[0]); |
| assertInstanceOf(A.class, o.o2[0]); |
| } |
| } |
| }, |
| { /* 33 */ |
| new Input<BeanWithAbstractMapFields>( |
| "BeanWithAbstractMapFields", |
| BeanWithAbstractMapFields.class, |
| new BeanWithAbstractMapFields().init(), |
| "<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k1</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k2</td>" |
| +"<td>" |
| +"<table _type='A'>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>c</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k3</td>" |
| +"<td>" |
| +"<table _type='A'>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>", |
| |
| "<table>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>a</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>k1</td>\n" |
| +"\t\t\t\t\t<td>\n" |
| +"\t\t\t\t\t\t<table>\n" |
| +"\t\t\t\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t\t\t\t<td>a</td>\n" |
| +"\t\t\t\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t\t\t\t</tr>\n" |
| +"\t\t\t\t\t\t</table>\n" |
| +"\t\t\t\t\t</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>b</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>k2</td>\n" |
| +"\t\t\t\t\t<td>\n" |
| +"\t\t\t\t\t\t<table _type='A'>\n" |
| +"\t\t\t\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t\t\t\t<td>a</td>\n" |
| +"\t\t\t\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t\t\t\t</tr>\n" |
| +"\t\t\t\t\t\t</table>\n" |
| +"\t\t\t\t\t</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"\t<tr>\n" |
| +"\t\t<td>c</td>\n" |
| +"\t\t<td>\n" |
| +"\t\t\t<table>\n" |
| +"\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t<td>k3</td>\n" |
| +"\t\t\t\t\t<td>\n" |
| +"\t\t\t\t\t\t<table _type='A'>\n" |
| +"\t\t\t\t\t\t\t<tr>\n" |
| +"\t\t\t\t\t\t\t\t<td>a</td>\n" |
| +"\t\t\t\t\t\t\t\t<td>foo</td>\n" |
| +"\t\t\t\t\t\t\t</tr>\n" |
| +"\t\t\t\t\t\t</table>\n" |
| +"\t\t\t\t\t</td>\n" |
| +"\t\t\t\t</tr>\n" |
| +"\t\t\t</table>\n" |
| +"\t\t</td>\n" |
| +"\t</tr>\n" |
| +"</table>\n", |
| |
| "<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k1</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>b</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k2</td>" |
| +"<td>" |
| +"<table _type='A'>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"<tr>" |
| +"<td>c</td>" |
| +"<td>" |
| +"<table>" |
| +"<tr>" |
| +"<td>k3</td>" |
| +"<td>" |
| +"<table _type='A'>" |
| +"<tr>" |
| +"<td>a</td>" |
| +"<td>foo</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| +"</td>" |
| +"</tr>" |
| +"</table>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithAbstractMapFields o) { |
| assertInstanceOf(A.class, o.a.get("k1")); |
| assertInstanceOf(A.class, o.b.get("k2")); |
| assertInstanceOf(A.class, o.c.get("k3")); |
| } |
| } |
| }, |
| { /* 34 */ |
| new Input<BeanWithWhitespaceTextFields>( |
| "BeanWithWhitespaceTextFields-1", |
| BeanWithWhitespaceTextFields.class, |
| new BeanWithWhitespaceTextFields().init(null), |
| "<object nil='true'></object>", |
| "<object nil='true'>\n</object>\n", |
| "<object nil='true'></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextFields o) { |
| assertInstanceOf(BeanWithWhitespaceTextFields.class, o); |
| } |
| } |
| }, |
| { /* 35 */ |
| new Input<BeanWithWhitespaceTextFields>( |
| "BeanWithWhitespaceTextFields-2", |
| BeanWithWhitespaceTextFields.class, |
| new BeanWithWhitespaceTextFields().init(""), |
| "<object><sp/></object>", |
| "<object><sp/></object>\n", |
| "<object><sp/></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextFields o) { |
| assertInstanceOf(BeanWithWhitespaceTextFields.class, o); |
| } |
| } |
| }, |
| { /* 36 */ |
| new Input<BeanWithWhitespaceTextFields>( |
| "BeanWithWhitespaceTextFields-3", |
| BeanWithWhitespaceTextFields.class, |
| new BeanWithWhitespaceTextFields().init(" "), |
| "<object><sp> </sp></object>", |
| "<object><sp> </sp></object>\n", |
| "<object><sp> </sp></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextFields o) { |
| assertInstanceOf(BeanWithWhitespaceTextFields.class, o); |
| } |
| } |
| }, |
| { /* 37 */ |
| new Input<BeanWithWhitespaceTextFields>( |
| "BeanWithWhitespaceTextFields-4", |
| BeanWithWhitespaceTextFields.class, |
| new BeanWithWhitespaceTextFields().init(" "), |
| "<object><sp> </sp><sp> </sp></object>", |
| "<object><sp> </sp><sp> </sp></object>\n", |
| "<object><sp> </sp><sp> </sp></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextFields o) { |
| assertInstanceOf(BeanWithWhitespaceTextFields.class, o); |
| } |
| } |
| }, |
| { /* 38 */ |
| new Input<BeanWithWhitespaceTextFields>( |
| "BeanWithWhitespaceTextFields-5", |
| BeanWithWhitespaceTextFields.class, |
| new BeanWithWhitespaceTextFields().init(" foobar "), |
| "<object><sp> </sp> foobar <sp> </sp></object>", |
| "<object><sp> </sp> foobar <sp> </sp></object>\n", |
| "<object><sp> </sp> foobar <sp> </sp></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextFields o) { |
| assertInstanceOf(BeanWithWhitespaceTextFields.class, o); |
| } |
| } |
| }, |
| { /* 39 */ |
| new Input<BeanWithWhitespaceTextPwsFields>( |
| "BeanWithWhitespaceTextPwsFields-1", |
| BeanWithWhitespaceTextPwsFields.class, |
| new BeanWithWhitespaceTextPwsFields().init(null), |
| "<object nil='true'></object>", |
| "<object nil='true'>\n</object>\n", |
| "<object nil='true'></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextPwsFields o) { |
| assertInstanceOf(BeanWithWhitespaceTextPwsFields.class, o); |
| } |
| } |
| }, |
| { /* 40 */ |
| new Input<BeanWithWhitespaceTextPwsFields>( |
| "BeanWithWhitespaceTextPwsFields-2", |
| BeanWithWhitespaceTextPwsFields.class, |
| new BeanWithWhitespaceTextPwsFields().init(""), |
| "<object><sp/></object>", |
| "<object><sp/></object>\n", |
| "<object><sp/></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextPwsFields o) { |
| assertInstanceOf(BeanWithWhitespaceTextPwsFields.class, o); |
| } |
| } |
| }, |
| { /* 41 */ |
| new Input<BeanWithWhitespaceTextPwsFields>( |
| "BeanWithWhitespaceTextPwsFields-3", |
| BeanWithWhitespaceTextPwsFields.class, |
| new BeanWithWhitespaceTextPwsFields().init(" "), |
| "<object> </object>", |
| "<object> </object>\n", |
| "<object> </object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextPwsFields o) { |
| assertInstanceOf(BeanWithWhitespaceTextPwsFields.class, o); |
| } |
| } |
| }, |
| { /* 42 */ |
| new Input<BeanWithWhitespaceTextPwsFields>( |
| "BeanWithWhitespaceTextPwsFields-4", |
| BeanWithWhitespaceTextPwsFields.class, |
| new BeanWithWhitespaceTextPwsFields().init(" "), |
| "<object> </object>", |
| "<object> </object>\n", |
| "<object> </object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextPwsFields o) { |
| assertInstanceOf(BeanWithWhitespaceTextPwsFields.class, o); |
| } |
| } |
| }, |
| { /* 43 */ |
| new Input<BeanWithWhitespaceTextPwsFields>( |
| "BeanWithWhitespaceTextPwsFields-5", |
| BeanWithWhitespaceTextPwsFields.class, |
| new BeanWithWhitespaceTextPwsFields().init(" foobar "), |
| "<object> foobar </object>", |
| "<object> foobar </object>\n", |
| "<object> foobar </object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextPwsFields o) { |
| assertInstanceOf(BeanWithWhitespaceTextPwsFields.class, o); |
| } |
| } |
| }, |
| { /* 44 */ |
| new Input<BeanWithWhitespaceMixedFields>( |
| "BeanWithWhitespaceMixedFields-1", |
| BeanWithWhitespaceMixedFields.class, |
| new BeanWithWhitespaceMixedFields().init(null), |
| "<object nil='true'></object>", |
| "<object nil='true'>\n</object>\n", |
| "<object nil='true'></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedFields o) { |
| assertInstanceOf(BeanWithWhitespaceMixedFields.class, o); |
| } |
| } |
| }, |
| { /* 45 */ |
| new Input<BeanWithWhitespaceMixedFields>( |
| "BeanWithWhitespaceMixedFields-2", |
| BeanWithWhitespaceMixedFields.class, |
| new BeanWithWhitespaceMixedFields().init(new String[0]), |
| "<object></object>", |
| "<object></object>\n", |
| "<object></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedFields o) { |
| assertInstanceOf(BeanWithWhitespaceMixedFields.class, o); |
| } |
| } |
| }, |
| { /* 46 */ |
| new Input<BeanWithWhitespaceMixedFields>( |
| "BeanWithWhitespaceMixedFields-3", |
| BeanWithWhitespaceMixedFields.class, |
| new BeanWithWhitespaceMixedFields().init(new String[]{""}), |
| "<object><sp/></object>", |
| "<object><sp/></object>\n", |
| "<object><sp/></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedFields o) { |
| assertInstanceOf(BeanWithWhitespaceMixedFields.class, o); |
| } |
| } |
| }, |
| { /* 47 */ |
| new Input<BeanWithWhitespaceMixedFields>( |
| "BeanWithWhitespaceMixedFields-4", |
| BeanWithWhitespaceMixedFields.class, |
| new BeanWithWhitespaceMixedFields().init(new String[]{" "}), |
| "<object><sp> </sp></object>", |
| "<object><sp> </sp></object>\n", |
| "<object><sp> </sp></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedFields o) { |
| assertInstanceOf(BeanWithWhitespaceMixedFields.class, o); |
| } |
| } |
| }, |
| { /* 48 */ |
| new Input<BeanWithWhitespaceMixedFields>( |
| "BeanWithWhitespaceMixedFields-5", |
| BeanWithWhitespaceMixedFields.class, |
| new BeanWithWhitespaceMixedFields().init(new String[]{" "}), |
| "<object><sp> </sp><sp> </sp></object>", |
| "<object><sp> </sp><sp> </sp></object>\n", |
| "<object><sp> </sp><sp> </sp></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedFields o) { |
| assertInstanceOf(BeanWithWhitespaceMixedFields.class, o); |
| } |
| } |
| }, |
| { /* 49 */ |
| new Input<BeanWithWhitespaceMixedFields>( |
| "BeanWithWhitespaceMixedFields-6", |
| BeanWithWhitespaceMixedFields.class, |
| new BeanWithWhitespaceMixedFields().init(new String[]{" foobar "}), |
| "<object><sp> </sp> foobar <sp> </sp></object>", |
| "<object><sp> </sp> foobar <sp> </sp></object>\n", |
| "<object><sp> </sp> foobar <sp> </sp></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedFields o) { |
| assertInstanceOf(BeanWithWhitespaceMixedFields.class, o); |
| } |
| } |
| }, |
| { /* 50 */ |
| new Input<BeanWithWhitespaceMixedPwsFields>( |
| "BeanWithWhitespaceMixedPwsFields-1", |
| BeanWithWhitespaceMixedPwsFields.class, |
| new BeanWithWhitespaceMixedPwsFields().init(null), |
| "<object nil='true'></object>", |
| "<object nil='true'>\n</object>\n", |
| "<object nil='true'></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedPwsFields o) { |
| assertInstanceOf(BeanWithWhitespaceMixedPwsFields.class, o); |
| } |
| } |
| }, |
| { /* 51 */ |
| new Input<BeanWithWhitespaceMixedPwsFields>( |
| "BeanWithWhitespaceMixedPwsFields-2", |
| BeanWithWhitespaceMixedPwsFields.class, |
| new BeanWithWhitespaceMixedPwsFields().init(new String[0]), |
| "<object></object>", |
| "<object></object>\n", |
| "<object></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedPwsFields o) { |
| assertInstanceOf(BeanWithWhitespaceMixedPwsFields.class, o); |
| } |
| } |
| }, |
| { /* 52 */ |
| new Input<BeanWithWhitespaceMixedPwsFields>( |
| "BeanWithWhitespaceMixedPwsFields-3", |
| BeanWithWhitespaceMixedPwsFields.class, |
| new BeanWithWhitespaceMixedPwsFields().init(new String[]{""}), |
| "<object><sp/></object>", |
| "<object><sp/></object>\n", |
| "<object><sp/></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedPwsFields o) { |
| assertInstanceOf(BeanWithWhitespaceMixedPwsFields.class, o); |
| } |
| } |
| }, |
| { /* 53 */ |
| new Input<BeanWithWhitespaceMixedPwsFields>( |
| "BeanWithWhitespaceMixedPwsFields-4", |
| BeanWithWhitespaceMixedPwsFields.class, |
| new BeanWithWhitespaceMixedPwsFields().init(new String[]{" "}), |
| "<object> </object>", |
| "<object> </object>\n", |
| "<object> </object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedPwsFields o) { |
| assertInstanceOf(BeanWithWhitespaceMixedPwsFields.class, o); |
| } |
| } |
| }, |
| { /* 54 */ |
| new Input<BeanWithWhitespaceMixedPwsFields>( |
| "BeanWithWhitespaceMixedPwsFields-5", |
| BeanWithWhitespaceMixedPwsFields.class, |
| new BeanWithWhitespaceMixedPwsFields().init(new String[]{" "}), |
| "<object> </object>", |
| "<object> </object>\n", |
| "<object> </object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedPwsFields o) { |
| assertInstanceOf(BeanWithWhitespaceMixedPwsFields.class, o); |
| } |
| } |
| }, |
| { /* 55 */ |
| new Input<BeanWithWhitespaceMixedPwsFields>( |
| "BeanWithWhitespaceMixedPwsFields-6", |
| BeanWithWhitespaceMixedPwsFields.class, |
| new BeanWithWhitespaceMixedPwsFields().init(new String[]{" foobar "}), |
| "<object> foobar </object>", |
| "<object> foobar </object>\n", |
| "<object> foobar </object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedPwsFields o) { |
| assertInstanceOf(BeanWithWhitespaceMixedPwsFields.class, o); |
| } |
| } |
| }, |
| { /* 56 */ |
| new Input<BeanWithWhitespaceTextFields2>( |
| "BeanWithWhitespaceTextFields2-1", |
| BeanWithWhitespaceTextFields2.class, |
| new BeanWithWhitespaceTextFields2().init(null), |
| "<object nil='true'></object>", |
| "<object nil='true'>\n</object>\n", |
| "<object nil='true'></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceTextFields2.class, o); |
| } |
| } |
| }, |
| { /* 57 */ |
| new Input<BeanWithWhitespaceTextFields2>( |
| "BeanWithWhitespaceTextFields2-2", |
| BeanWithWhitespaceTextFields2.class, |
| new BeanWithWhitespaceTextFields2().init(""), |
| "<object><sp/></object>", |
| "<object><sp/></object>\n", |
| "<object><sp/></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceTextFields2.class, o); |
| } |
| } |
| }, |
| { /* 58 */ |
| new Input<BeanWithWhitespaceTextFields2>( |
| "BeanWithWhitespaceTextFields2-3", |
| BeanWithWhitespaceTextFields2.class, |
| new BeanWithWhitespaceTextFields2().init(" "), |
| "<object><sp> </sp></object>", |
| "<object><sp> </sp></object>\n", |
| "<object><sp> </sp></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceTextFields2.class, o); |
| } |
| } |
| }, |
| { /* 59 */ |
| new Input<BeanWithWhitespaceTextFields2>( |
| "BeanWithWhitespaceTextFields2-4", |
| BeanWithWhitespaceTextFields2.class, |
| new BeanWithWhitespaceTextFields2().init(" "), |
| "<object><sp> </sp><sp> </sp></object>", |
| "<object><sp> </sp><sp> </sp></object>\n", |
| "<object><sp> </sp><sp> </sp></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceTextFields2.class, o); |
| } |
| } |
| }, |
| { /* 60 */ |
| new Input<BeanWithWhitespaceTextFields2>( |
| "BeanWithWhitespaceTextFields2-5", |
| BeanWithWhitespaceTextFields2.class, |
| new BeanWithWhitespaceTextFields2().init(" foobar "), |
| "<object><sp> </sp> foobar <sp> </sp></object>", |
| "<object><sp> </sp> foobar <sp> </sp></object>\n", |
| "<object><sp> </sp> foobar <sp> </sp></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceTextFields2.class, o); |
| } |
| } |
| }, |
| { /* 61 */ |
| new Input<BeanWithWhitespaceTextPwsFields2>( |
| "BeanWithWhitespaceTextPwsFields2-1", |
| BeanWithWhitespaceTextPwsFields2.class, |
| new BeanWithWhitespaceTextPwsFields2().init(null), |
| "<object nil='true'></object>", |
| "<object nil='true'>\n</object>\n", |
| "<object nil='true'></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextPwsFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceTextPwsFields2.class, o); |
| } |
| } |
| }, |
| { /* 62 */ |
| new Input<BeanWithWhitespaceTextPwsFields2>( |
| "BeanWithWhitespaceTextPwsFields2-2", |
| BeanWithWhitespaceTextPwsFields2.class, |
| new BeanWithWhitespaceTextPwsFields2().init(""), |
| "<object><sp/></object>", |
| "<object><sp/></object>\n", |
| "<object><sp/></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextPwsFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceTextPwsFields2.class, o); |
| } |
| } |
| }, |
| { /* 63 */ |
| new Input<BeanWithWhitespaceTextPwsFields2>( |
| "BeanWithWhitespaceTextPwsFields2-3", |
| BeanWithWhitespaceTextPwsFields2.class, |
| new BeanWithWhitespaceTextPwsFields2().init(" "), |
| "<object> </object>", |
| "<object> </object>\n", |
| "<object> </object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextPwsFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceTextPwsFields2.class, o); |
| } |
| } |
| }, |
| { /* 64 */ |
| new Input<BeanWithWhitespaceTextPwsFields2>( |
| "BeanWithWhitespaceTextPwsFields2-4", |
| BeanWithWhitespaceTextPwsFields2.class, |
| new BeanWithWhitespaceTextPwsFields2().init(" "), |
| "<object> </object>", |
| "<object> </object>\n", |
| "<object> </object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextPwsFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceTextPwsFields2.class, o); |
| } |
| } |
| }, |
| { /* 65 */ |
| new Input<BeanWithWhitespaceTextPwsFields2>( |
| "BeanWithWhitespaceTextPwsFields2-5", |
| BeanWithWhitespaceTextPwsFields2.class, |
| new BeanWithWhitespaceTextPwsFields2().init(" foobar "), |
| "<object> foobar </object>", |
| "<object> foobar </object>\n", |
| "<object> foobar </object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceTextPwsFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceTextPwsFields2.class, o); |
| } |
| } |
| }, |
| { /* 66 */ |
| new Input<BeanWithWhitespaceMixedFields2>( |
| "BeanWithWhitespaceMixedFields2-1", |
| BeanWithWhitespaceMixedFields2.class, |
| new BeanWithWhitespaceMixedFields2().init(null), |
| "<object nil='true'></object>", |
| "<object nil='true'>\n</object>\n", |
| "<object nil='true'></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceMixedFields2.class, o); |
| } |
| } |
| }, |
| { /* 67 */ |
| new Input<BeanWithWhitespaceMixedFields2>( |
| "BeanWithWhitespaceMixedFields2-2", |
| BeanWithWhitespaceMixedFields2.class, |
| new BeanWithWhitespaceMixedFields2().init(new String[0]), |
| "<object></object>", |
| "<object></object>\n", |
| "<object></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceMixedFields2.class, o); |
| } |
| } |
| }, |
| { /* 68 */ |
| new Input<BeanWithWhitespaceMixedFields2>( |
| "BeanWithWhitespaceMixedFields2-3", |
| BeanWithWhitespaceMixedFields2.class, |
| new BeanWithWhitespaceMixedFields2().init(new String[]{""}), |
| "<object><sp/></object>", |
| "<object><sp/></object>\n", |
| "<object><sp/></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceMixedFields2.class, o); |
| } |
| } |
| }, |
| { /* 69 */ |
| new Input<BeanWithWhitespaceMixedFields2>( |
| "BeanWithWhitespaceMixedFields2-4", |
| BeanWithWhitespaceMixedFields2.class, |
| new BeanWithWhitespaceMixedFields2().init(new String[]{" "}), |
| "<object><sp> </sp></object>", |
| "<object><sp> </sp></object>\n", |
| "<object><sp> </sp></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceMixedFields2.class, o); |
| } |
| } |
| }, |
| { /* 70 */ |
| new Input<BeanWithWhitespaceMixedFields2>( |
| "BeanWithWhitespaceMixedFields2-5", |
| BeanWithWhitespaceMixedFields2.class, |
| new BeanWithWhitespaceMixedFields2().init(new String[]{" "}), |
| "<object><sp> </sp><sp> </sp></object>", |
| "<object><sp> </sp><sp> </sp></object>\n", |
| "<object><sp> </sp><sp> </sp></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceMixedFields2.class, o); |
| } |
| } |
| }, |
| { /* 71 */ |
| new Input<BeanWithWhitespaceMixedFields2>( |
| "BeanWithWhitespaceMixedFields2-6", |
| BeanWithWhitespaceMixedFields2.class, |
| new BeanWithWhitespaceMixedFields2().init(new String[]{" foobar "}), |
| "<object><sp> </sp> foobar <sp> </sp></object>", |
| "<object><sp> </sp> foobar <sp> </sp></object>\n", |
| "<object><sp> </sp> foobar <sp> </sp></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceMixedFields2.class, o); |
| } |
| } |
| }, |
| { /* 72 */ |
| new Input<BeanWithWhitespaceMixedPwsFields2>( |
| "BeanWithWhitespaceMixedPwsFields2-1", |
| BeanWithWhitespaceMixedPwsFields2.class, |
| new BeanWithWhitespaceMixedPwsFields2().init(null), |
| "<object nil='true'></object>", |
| "<object nil='true'>\n</object>\n", |
| "<object nil='true'></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedPwsFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceMixedPwsFields2.class, o); |
| } |
| } |
| }, |
| { /* 73 */ |
| new Input<BeanWithWhitespaceMixedPwsFields2>( |
| "BeanWithWhitespaceMixedPwsFields2-2", |
| BeanWithWhitespaceMixedPwsFields2.class, |
| new BeanWithWhitespaceMixedPwsFields2().init(new String[0]), |
| "<object></object>", |
| "<object></object>\n", |
| "<object></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedPwsFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceMixedPwsFields2.class, o); |
| } |
| } |
| }, |
| { /* 74 */ |
| new Input<BeanWithWhitespaceMixedPwsFields2>( |
| "BeanWithWhitespaceMixedPwsFields2-3", |
| BeanWithWhitespaceMixedPwsFields2.class, |
| new BeanWithWhitespaceMixedPwsFields2().init(new String[]{""}), |
| "<object><sp/></object>", |
| "<object><sp/></object>\n", |
| "<object><sp/></object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedPwsFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceMixedPwsFields2.class, o); |
| } |
| } |
| }, |
| { /* 75 */ |
| new Input<BeanWithWhitespaceMixedPwsFields2>( |
| "BeanWithWhitespaceMixedPwsFields2-4", |
| BeanWithWhitespaceMixedPwsFields2.class, |
| new BeanWithWhitespaceMixedPwsFields2().init(new String[]{" "}), |
| "<object> </object>", |
| "<object> </object>\n", |
| "<object> </object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedPwsFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceMixedPwsFields2.class, o); |
| } |
| } |
| }, |
| { /* 76 */ |
| new Input<BeanWithWhitespaceMixedPwsFields2>( |
| "BeanWithWhitespaceMixedPwsFields2-5", |
| BeanWithWhitespaceMixedPwsFields2.class, |
| new BeanWithWhitespaceMixedPwsFields2().init(new String[]{" "}), |
| "<object> </object>", |
| "<object> </object>\n", |
| "<object> </object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedPwsFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceMixedPwsFields2.class, o); |
| } |
| } |
| }, |
| { /* 77 */ |
| new Input<BeanWithWhitespaceMixedPwsFields2>( |
| "BeanWithWhitespaceMixedPwsFields2-6", |
| BeanWithWhitespaceMixedPwsFields2.class, |
| new BeanWithWhitespaceMixedPwsFields2().init(new String[]{" foobar "}), |
| "<object> foobar </object>", |
| "<object> foobar </object>\n", |
| "<object> foobar </object>" |
| ) |
| { |
| @Override |
| public void verify(BeanWithWhitespaceMixedPwsFields2 o) { |
| assertInstanceOf(BeanWithWhitespaceMixedPwsFields2.class, o); |
| } |
| } |
| }, |
| }); |
| } |
| |
| private Input input; |
| |
| public BasicHtmlTest(Input input) throws Exception { |
| this.input = input; |
| } |
| |
| public static class Input<T> { |
| private final String label, e1, e2, e3; |
| private final Type type; |
| private final Object in; |
| |
| public Input(String label, Type type, T in, String e1, String e2, String e3) { |
| this.label = label; |
| this.type = type; |
| this.in = in; |
| this.e1 = e1; |
| this.e2 = e2; |
| this.e3 = e3; |
| } |
| |
| public void verify(T o) {} |
| } |
| |
| @Test |
| public void a1_serializeNormal() { |
| try { |
| String r = s1.serialize(input.in); |
| assertEquals(input.label + " serialize-normal failed", input.e1, r); |
| } catch (AssertionError e) { |
| throw e; |
| } catch (Throwable e) { |
| throw new RuntimeException(input.label + " test failed", e); |
| } |
| } |
| |
| @Test |
| public void a2_parseNormal() { |
| try { |
| String r = s1.serialize(input.in); |
| Object o = parser.parse(r, input.type); |
| r = s1.serialize(o); |
| assertEquals(input.label + " parse-normal failed", input.e1, r); |
| } catch (AssertionError e) { |
| throw e; |
| } catch (Throwable e) { |
| throw new RuntimeException(input.label + " test failed", e); |
| } |
| } |
| |
| @Test |
| public void a3_verifyNormal() { |
| try { |
| String r = s1.serialize(input.in); |
| Object o = parser.parse(r, input.type); |
| input.verify(o); |
| } catch (AssertionError e) { |
| throw e; |
| } catch (Throwable e) { |
| throw new RuntimeException(input.label + " test failed", e); |
| } |
| } |
| |
| @Test |
| public void b1_serializeReadable() { |
| try { |
| String r = s2.serialize(input.in); |
| assertEquals(input.label + " serialize-readable failed", input.e2, r); |
| } catch (AssertionError e) { |
| throw e; |
| } catch (Throwable e) { |
| throw new RuntimeException(input.label + " test failed", e); |
| } |
| } |
| |
| @Test |
| public void b2_parseReadable() { |
| try { |
| String r = s2.serialize(input.in); |
| Object o = parser.parse(r, input.type); |
| r = s2.serialize(o); |
| assertEquals(input.label + " parse-readable failed", input.e2, r); |
| } catch (AssertionError e) { |
| throw e; |
| } catch (Throwable e) { |
| throw new RuntimeException(input.label + " test failed", e); |
| } |
| } |
| |
| @Test |
| public void b3_verifyReadable() { |
| try { |
| String r = s2.serialize(input.in); |
| Object o = parser.parse(r, input.type); |
| input.verify(o); |
| } catch (AssertionError e) { |
| throw e; |
| } catch (Throwable e) { |
| throw new RuntimeException(input.label + " test failed", e); |
| } |
| } |
| |
| @Test |
| public void c1_serializeAbridged() { |
| try { |
| String r = s3.serialize(input.in); |
| assertEquals(input.label + " serialize-addRootType failed", input.e3, r); |
| } catch (AssertionError e) { |
| throw e; |
| } catch (Throwable e) { |
| throw new RuntimeException(input.label + " test failed", e); |
| } |
| } |
| |
| @Test |
| public void c2_parseAbridged() { |
| try { |
| String r = s3.serialize(input.in); |
| Object o = parser.parse(r, input.type); |
| r = s3.serialize(o); |
| assertEquals(input.label + " parse-addRootType failed", input.e3, r); |
| } catch (AssertionError e) { |
| throw e; |
| } catch (Throwable e) { |
| throw new RuntimeException(input.label + " test failed", e); |
| } |
| } |
| |
| @Test |
| public void c3_verifyAbridged() { |
| try { |
| String r = s3.serialize(input.in); |
| Object o = parser.parse(r, input.type); |
| input.verify(o); |
| } catch (AssertionError e) { |
| throw e; |
| } catch (Throwable e) { |
| throw new RuntimeException(input.label + " test failed", e); |
| } |
| } |
| |
| //----------------------------------------------------------------------------------------------------------------- |
| // Test beans |
| //----------------------------------------------------------------------------------------------------------------- |
| |
| public static class MapWithStrings extends LinkedHashMap<String,String> { |
| public MapWithStrings append(String key, String value) { |
| put(key, value); |
| return this; |
| } |
| } |
| |
| public static class MapWithNumbers extends LinkedHashMap<String,Number> { |
| public MapWithNumbers append(String key, Number value) { |
| put(key, value); |
| return this; |
| } |
| } |
| |
| public static class MapWithObjects extends LinkedHashMap<String,Object> { |
| public MapWithObjects append(String key, Object value) { |
| put(key, value); |
| return this; |
| } |
| } |
| |
| public static class ListWithStrings extends ArrayList<String> { |
| public ListWithStrings append(String value) { |
| this.add(value); |
| return this; |
| } |
| } |
| |
| public static class ListWithNumbers extends ArrayList<Number> { |
| public ListWithNumbers append(Number value) { |
| this.add(value); |
| return this; |
| } |
| } |
| |
| public static class ListWithObjects extends ArrayList<Object> { |
| public ListWithObjects append(Object value) { |
| this.add(value); |
| return this; |
| } |
| } |
| |
| public static class BeanWithNormalProperties { |
| public String a; |
| public int b; |
| public Object c; |
| public Object d; |
| public Bean1a e; |
| public String[] f; |
| public int[] g; |
| |
| BeanWithNormalProperties init() { |
| a = "foo"; |
| b = 123; |
| c = "bar"; |
| d = 456; |
| e = new Bean1a().init(); |
| f = new String[]{ "baz" }; |
| g = new int[]{ 789 }; |
| return this; |
| } |
| } |
| |
| public static class Bean1a { |
| public String h; |
| |
| Bean1a init() { |
| h = "qux"; |
| return this; |
| } |
| } |
| |
| public static class BeanWithMapProperties { |
| @Beanp(type=MapWithStrings.class) |
| public Map<String,String> a; |
| @Beanp(type=MapWithNumbers.class) |
| public Map<String,Number> b; |
| @Beanp(type=MapWithObjects.class) |
| public Map<String,Object> c; |
| |
| BeanWithMapProperties init() { |
| a = new MapWithStrings().append("k1","foo"); |
| b = new MapWithNumbers().append("k2",123); |
| c = new MapWithObjects().append("k3","bar").append("k4",456).append("k5",true).append("k6",null); |
| return this; |
| } |
| } |
| |
| @Bean(typeName="X") |
| public static class BeanWithTypeName { |
| public int a; |
| public String b; |
| |
| BeanWithTypeName init() { |
| a = 123; |
| b = "foo"; |
| return this; |
| } |
| } |
| |
| @Bean(dictionary={B.class}) |
| public static class BeanWithPropertiesWithTypeNames { |
| public B b1; |
| public Object b2; |
| |
| BeanWithPropertiesWithTypeNames init() { |
| b1 = new B().init(); |
| b2 = new B().init(); |
| return this; |
| } |
| } |
| |
| @Bean(dictionary={B.class}) |
| public static class BeanWithPropertiesWithArrayTypeNames { |
| public B[] b1; |
| public Object[] b2; |
| public Object[] b3; |
| |
| BeanWithPropertiesWithArrayTypeNames init() { |
| b1 = new B[]{new B().init()}; |
| b2 = new B[]{new B().init()}; |
| b3 = new Object[]{new B().init()}; |
| return this; |
| } |
| } |
| |
| @Bean(dictionary={B.class}) |
| public static class BeanWithPropertiesWith2dArrayTypeNames { |
| public B[][] b1; |
| public Object[][] b2; |
| public Object[][] b3; |
| |
| BeanWithPropertiesWith2dArrayTypeNames init() { |
| b1 = new B[][]{{new B().init()}}; |
| b2 = new B[][]{{new B().init()}}; |
| b3 = new Object[][]{{new B().init()}}; |
| return this; |
| } |
| } |
| |
| @Bean(dictionary={B.class}) |
| public static class BeanWithPropertiesWithMapTypeNames { |
| public Map<String,B> b1; |
| public Map<String,Object> b2; |
| |
| BeanWithPropertiesWithMapTypeNames init() { |
| b1 = new HashMap<>(); |
| b1.put("k1", new B().init()); |
| b2 = new HashMap<>(); |
| b2.put("k2", new B().init()); |
| return this; |
| } |
| } |
| |
| @Bean(typeName="B") |
| public static class B { |
| public String b; |
| |
| B init() { |
| b = "foo"; |
| return this; |
| } |
| } |
| |
| @HtmlLink(nameProperty="a",uriProperty="b") |
| public static class LinkBean { |
| public String a; |
| public String b; |
| |
| LinkBean init() { |
| a = "foo"; |
| b = "http://apache.org"; |
| return this; |
| } |
| } |
| |
| public static class ListWithLinkBeans extends ArrayList<LinkBean> { |
| public ListWithLinkBeans append(LinkBean value) { |
| this.add(value); |
| return this; |
| } |
| } |
| |
| public static class BeanWithLinkBeanProperties { |
| public LinkBean a; |
| public List<LinkBean> b; |
| public Map<String,LinkBean> c; |
| |
| BeanWithLinkBeanProperties init() { |
| a = new LinkBean().init(); |
| b = new ListWithLinkBeans().append(new LinkBean().init()); |
| c = new LinkedHashMap<>(); |
| c.put("c1", new LinkBean().init()); |
| return this; |
| } |
| } |
| |
| public static class BeanWithSpecialCharacters { |
| public String a; |
| |
| BeanWithSpecialCharacters init() { |
| a = " \b\f\n\t\r "; |
| return this; |
| } |
| } |
| |
| @Bean(typeName=" \b\f\n\t\r ") |
| public static class BeanWithSpecialCharacters2 { |
| |
| @Beanp(name=" \b\f\n\t\r ") |
| public String a; |
| |
| BeanWithSpecialCharacters2 init() { |
| a = " \b\f\n\t\r "; |
| return this; |
| } |
| } |
| |
| public static class BeanWithNullProperties { |
| public String a; |
| public String[] b; |
| } |
| |
| @Bean(dictionary={A.class},bpi="a,ia,aa,o") |
| public static class BeanWithAbstractFields { |
| public A a; |
| public IA ia; |
| public AA aa; |
| public Object o; |
| |
| BeanWithAbstractFields init() { |
| ia = new A().init(); |
| aa = new A().init(); |
| a = new A().init(); |
| o = new A().init(); |
| return this; |
| } |
| } |
| |
| @Bean(dictionary={A.class},bpi="a,ia1,ia2,aa1,aa2,o1,o2") |
| public static class BeanWithAbstractArrayFields { |
| public A[] a; |
| public IA[] ia1, ia2; |
| public AA[] aa1, aa2; |
| public Object[] o1, o2; |
| |
| BeanWithAbstractArrayFields init() { |
| a = new A[]{new A().init()}; |
| ia1 = new A[]{new A().init()}; |
| aa1 = new A[]{new A().init()}; |
| o1 = new A[]{new A().init()}; |
| ia2 = new IA[]{new A().init()}; |
| aa2 = new AA[]{new A().init()}; |
| o2 = new Object[]{new A().init()}; |
| return this; |
| } |
| } |
| |
| @Bean(dictionary={A.class}) |
| public static class BeanWithAbstractMapFields { |
| public Map<String,A> a; |
| public Map<String,AA> b; |
| public Map<String,Object> c; |
| |
| BeanWithAbstractMapFields init() { |
| a = new HashMap<>(); |
| b = new HashMap<>(); |
| c = new HashMap<>(); |
| a.put("k1", new A().init()); |
| b.put("k2", new A().init()); |
| c.put("k3", new A().init()); |
| return this; |
| } |
| } |
| |
| public static interface IA { |
| public String getA(); |
| public void setA(String a); |
| } |
| |
| public static abstract class AA implements IA {} |
| |
| @Bean(typeName="A") |
| public static class A extends AA { |
| private String a; |
| |
| @Override |
| public String getA() { |
| return a; |
| } |
| |
| @Override |
| public void setA(String a) { |
| this.a = a; |
| } |
| |
| A init() { |
| this.a = "foo"; |
| return this; |
| } |
| } |
| |
| @Html(format=XML) |
| public static class BeanWithWhitespaceTextFields { |
| @Xml(format=XmlFormat.TEXT) |
| public String a; |
| |
| public BeanWithWhitespaceTextFields init(String s) { |
| a = s; |
| return this; |
| } |
| } |
| |
| @Html(format=XML) |
| public static class BeanWithWhitespaceTextPwsFields { |
| @Xml(format=XmlFormat.TEXT_PWS) |
| public String a; |
| |
| public BeanWithWhitespaceTextPwsFields init(String s) { |
| a = s; |
| return this; |
| } |
| } |
| |
| @Html(format=XML) |
| public static class BeanWithWhitespaceMixedFields { |
| @Xml(format=XmlFormat.MIXED) |
| public String[] a; |
| |
| public BeanWithWhitespaceMixedFields init(String[] s) { |
| a = s; |
| return this; |
| } |
| } |
| |
| @Html(format=XML) |
| public static class BeanWithWhitespaceMixedPwsFields { |
| @Xml(format=XmlFormat.MIXED_PWS) |
| public String[] a; |
| |
| public BeanWithWhitespaceMixedPwsFields init(String[] s) { |
| a = s; |
| return this; |
| } |
| } |
| |
| @HtmlConfig(annotateHtml={@Html(on="BeanWithWhitespaceTextFields2",format=XML)}) |
| @XmlConfig(annotateXml={@Xml(on="BeanWithWhitespaceTextFields2.a",format=XmlFormat.TEXT)}) |
| public static class BeanWithWhitespaceTextFields2 { |
| public String a; |
| |
| public BeanWithWhitespaceTextFields2 init(String s) { |
| a = s; |
| return this; |
| } |
| } |
| |
| @HtmlConfig(annotateHtml={@Html(on="BeanWithWhitespaceTextPwsFields2",format=XML)}) |
| @XmlConfig(annotateXml={@Xml(on="BeanWithWhitespaceTextPwsFields2.a",format=XmlFormat.TEXT_PWS)}) |
| public static class BeanWithWhitespaceTextPwsFields2 { |
| public String a; |
| |
| public BeanWithWhitespaceTextPwsFields2 init(String s) { |
| a = s; |
| return this; |
| } |
| } |
| |
| @HtmlConfig(annotateHtml={@Html(on="BeanWithWhitespaceMixedFields2",format=XML)}) |
| @XmlConfig(annotateXml={@Xml(on="BeanWithWhitespaceMixedFields2.a",format=XmlFormat.MIXED)}) |
| public static class BeanWithWhitespaceMixedFields2 { |
| public String[] a; |
| |
| public BeanWithWhitespaceMixedFields2 init(String[] s) { |
| a = s; |
| return this; |
| } |
| } |
| |
| @HtmlConfig(annotateHtml={@Html(on="BeanWithWhitespaceMixedPwsFields2",format=XML)}) |
| @XmlConfig(annotateXml={@Xml(on="BeanWithWhitespaceMixedPwsFields2.a",format=XmlFormat.MIXED_PWS)}) |
| @Html(format=XML) |
| public static class BeanWithWhitespaceMixedPwsFields2 { |
| public String[] a; |
| |
| public BeanWithWhitespaceMixedPwsFields2 init(String[] s) { |
| a = s; |
| return this; |
| } |
| } |
| |
| } |