Author: jafl Date: Tue May 31 19:24:27 2011 New Revision: 1129864 URL: http://svn.apache.org/viewvc?rev=1129864&view=rev Log: WW-3638 additional unit test for multi-level array in includeProperties
Added: struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-11.txt - copied, changed from r1129833, struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-10.txt Modified: struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONResultTest.java struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/TestAction.java struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-3.txt struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json.txt Modified: struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONResultTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONResultTest.java?rev=1129864&r1=1129863&r2=1129864&view=diff ============================================================================== --- struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONResultTest.java (original) +++ struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONResultTest.java Tue May 31 19:24:27 2011 @@ -28,8 +28,10 @@ import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.regex.Pattern; import javax.servlet.http.HttpServletResponse; @@ -530,6 +532,47 @@ public class JSONResultTest extends Stru assertEquals("application/json;charset=ISO-8859-1", response.getContentType()); } + public void testIncludePropertiesWithSetList() throws Exception { + JSONResult result = new JSONResult(); + result.setIncludeProperties("^set\\[\\d+\\]\\.list\\[\\d+\\]\\.booleanField"); + TestAction action = new TestAction(); + stack.push(action); + + Set set = new LinkedHashSet(); + + TestAction a1 = new TestAction(); + + List list = new ArrayList(); + + list.add(new Bean()); + list.add(new Bean()); + list.add(new Bean()); + + a1.setList(list); + set.add(a1); + + TestAction a2 = new TestAction(); + + list = new ArrayList(); + + list.add(new Bean()); + list.add(new Bean()); + + a2.setList(list); + set.add(a2); + + action.setSet(set); + + this.invocation.setAction(action); + result.execute(this.invocation); + + String json = response.getContentAsString(); + String normalizedActual = TestUtils.normalize(json, true); + String normalizedExpected = TestUtils.normalize(JSONResultTest.class.getResource("json-11.txt")); + assertEquals(normalizedExpected, normalizedActual); + assertEquals("application/json;charset=ISO-8859-1", response.getContentType()); + } + @Override protected void setUp() throws Exception { super.setUp(); Modified: struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/TestAction.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/TestAction.java?rev=1129864&r1=1129863&r2=1129864&view=diff ============================================================================== --- struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/TestAction.java (original) +++ struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/TestAction.java Tue May 31 19:24:27 2011 @@ -23,6 +23,7 @@ package org.apache.struts2.json; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.struts2.json.annotations.JSON; @@ -37,6 +38,7 @@ public class TestAction extends ActionSu private List collection; private List collection2; private Map map; + private Set set; private String foo; private String result; private String[] array; @@ -82,6 +84,14 @@ public class TestAction extends ActionSu this.map = map; } + public Set getSet() { + return this.set; + } + + public void setSet(Set set) { + this.set = set; + } + public String getFoo() { return this.foo; } Copied: struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-11.txt (from r1129833, struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-10.txt) URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-11.txt?p2=struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-11.txt&p1=struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-10.txt&r1=1129833&r2=1129864&rev=1129864&view=diff ============================================================================== --- struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-10.txt (original) +++ struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-11.txt Tue May 31 19:24:27 2011 @@ -1,3 +1,6 @@ { - "list":[{"booleanField":false},{"booleanField":false},{"booleanField":false}] + "set":[ + {"list":[{"booleanField":false},{"booleanField":false},{"booleanField":false}]}, + {"list":[{"booleanField":false},{"booleanField":false}]} + ] } Modified: struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-3.txt URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-3.txt?rev=1129864&r1=1129863&r2=1129864&view=diff ============================================================================== --- struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-3.txt (original) +++ struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json-3.txt Tue May 31 19:24:27 2011 @@ -39,5 +39,6 @@ "a": 1, "c": [1.0, 2.0] }, - "result":null + "result":null, + "set":null } */ \ No newline at end of file Modified: struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json.txt URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json.txt?rev=1129864&r1=1129863&r2=1129864&view=diff ============================================================================== --- struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json.txt (original) +++ struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/json.txt Tue May 31 19:24:27 2011 @@ -3,20 +3,20 @@ "bean": null, "collection": ["b", 1, [10, 12]], "collection2": [{ - "bigDecimal": 111111.111111, - "bigInteger": 111111111111, + "bigDecimal": 111111.111111, + "bigInteger": 111111111111, "booleanField": true, "byteField": 0, "charField": "s", "doubleField": 10.1, "enumBean": "One", "enumField": "ValueA", - "floatField": 1.5, + "floatField": 1.5, "intField": 10, "longField": 100, "objectField": { - "bigDecimal": null, - "bigInteger": null, + "bigDecimal": null, + "bigInteger": null, "booleanField": false, "byteField": 0, "charField": "\u0000", @@ -28,8 +28,8 @@ "longField":0, "objectField":null, "stringField":" " - }, - "stringField": "str" + }, + "stringField": "str" }], "date": "1999-12-31T11:59:59", "date2": "31\/12\/99", @@ -39,5 +39,6 @@ "a": 1, "c": [1.0, 2.0] }, - "result":null + "result":null, + "set":null } \ No newline at end of file