WW-4301 Adds additional use-case to proof the problem exists

This commit is contained in:
Lukasz Lenart
2014-08-07 08:43:42 +02:00
parent dfb2bd3dbe
commit 120830f1ac
2 changed files with 38 additions and 0 deletions
@@ -20,7 +20,10 @@
*/
package org.apache.struts2.json;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import junit.framework.TestCase;
@@ -63,4 +66,15 @@ public class JSONUtilTest extends TestCase {
// is a
// String
}
public void testSerializeListOfList() throws Exception {
ListBean bean = new ListBean();
// This additional 'listOfLists' pattern should be omitted, but not with current version of JSONUtil
List<Pattern> includeProperties = JSONUtil.processIncludePatterns(JSONUtil.asSet("listOfLists,listOfLists\\[\\d+\\]\\[\\d+\\]"), JSONUtil.REGEXP_PATTERN);
String actual = JSONUtil.serialize(bean, null, new ArrayList<Pattern>(includeProperties), false, false);
assertEquals("{\"listOfLists\":[[\"1\",\"2\"],[\"3\",\"4\"],[\"5\",\"6\"],[\"7\",\"8\"],[\"9\",\"0\"]]}", actual);
}
}
@@ -0,0 +1,24 @@
package org.apache.struts2.json;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ListBean {
private List<List<String>> listOfLists;
public ListBean() {
listOfLists = new ArrayList<List<String>>();
listOfLists.add(Arrays.asList("1", "2"));
listOfLists.add(Arrays.asList("3", "4"));
listOfLists.add(Arrays.asList("5", "6"));
listOfLists.add(Arrays.asList("7", "8"));
listOfLists.add(Arrays.asList("9", "0"));
}
public List<List<String>> getListOfLists() {
return listOfLists;
}
}