diff --git a/plugins/json/src/test/java/org/apache/struts2/json/JSONWriterTest.java b/plugins/json/src/test/java/org/apache/struts2/json/JSONWriterTest.java index 88c888cdc..2a9d733cd 100644 --- a/plugins/json/src/test/java/org/apache/struts2/json/JSONWriterTest.java +++ b/plugins/json/src/test/java/org/apache/struts2/json/JSONWriterTest.java @@ -7,7 +7,9 @@ import org.junit.Test; import java.net.URL; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.TimeZone; @@ -90,6 +92,41 @@ public class JSONWriterTest extends StrutsTestCase{ TestUtils.assertEquals(JSONWriter.class.getResource("jsonwriter-write-bean-02.txt"), json); } + @Test + public void testWriteBeanWithList() throws Exception { + BeanWithList bean1 = new BeanWithList(); + bean1.setStringField("str"); + bean1.setBooleanField(true); + bean1.setCharField('s'); + bean1.setDoubleField(10.1); + bean1.setFloatField(1.5f); + bean1.setIntField(10); + bean1.setLongField(100); + bean1.setEnumField(AnEnum.ValueA); + bean1.setEnumBean(AnEnumBean.Two); + List errors = new ArrayList(); + errors.add("Field is required"); + bean1.setErrors(errors); + + JSONWriter jsonWriter = new JSONWriter(); + jsonWriter.setEnumAsBean(false); + jsonWriter.setIgnoreHierarchy(false); + String json = jsonWriter.write(bean1); + TestUtils.assertEquals(JSONWriter.class.getResource("jsonwriter-write-bean-04.txt"), json); + } + + private class BeanWithList extends Bean { + private List errors; + + public List getErrors() { + return errors; + } + + public void setErrors(List errors) { + this.errors = errors; + } + } + private class AnnotatedBean extends Bean{ private URL url; diff --git a/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-04.txt b/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-04.txt new file mode 100644 index 000000000..41f0b8177 --- /dev/null +++ b/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-04.txt @@ -0,0 +1,16 @@ +{ + "bigDecimal":null, + "bigInteger":null, + "booleanField":true, + "byteField":0, + "charField":"s", + "doubleField":10.1, + "enumBean":"Two", + "enumField":"ValueA", + "errors":["Field is required"], + "floatField":1.5, + "intField":10, + "longField":100, + "objectField":null, + "stringField":"str" +}