@@ -49,4 +49,78 @@ class JsonBufferTest extends Specification {
4949 then :
5050 jsonBuffer. toString() == ' ["\\ "","\\\\ ","\\ /","\\ b","\\ f","\\ n","\\ r","\\ t"]'
5151 }
52+
53+ def " nesting array in object" () {
54+ when :
55+ def jsonBuffer = new JsonBuffer ()
56+ jsonBuffer. beginObject()
57+ jsonBuffer. name(" array" )
58+ jsonBuffer. beginArray()
59+ jsonBuffer. value(" true" )
60+ jsonBuffer. value(" false" )
61+ jsonBuffer. endArray()
62+ jsonBuffer. endObject()
63+
64+ then :
65+ jsonBuffer. toString() == ' {"array":["true","false"]}'
66+ }
67+
68+ def " nesting object in array" () {
69+ when :
70+ def jsonBuffer = new JsonBuffer ()
71+ jsonBuffer. beginArray()
72+ jsonBuffer. beginObject()
73+ jsonBuffer. name(" true" ). value(true )
74+ jsonBuffer. endObject()
75+ jsonBuffer. beginObject()
76+ jsonBuffer. name(" false" ). value(false )
77+ jsonBuffer. endObject()
78+ jsonBuffer. endArray()
79+
80+ then :
81+ jsonBuffer. toString() == ' [{"true":true},{"false":false}]'
82+ }
83+
84+ def " partial object buffer" () {
85+ when :
86+ def partialJsonBuffer = new JsonBuffer ()
87+ partialJsonBuffer. name(" foo" ). value(" bar" )
88+ partialJsonBuffer. name(" quux" ). value(" baz" )
89+
90+ def jsonBuffer = new JsonBuffer ()
91+ jsonBuffer. beginObject()
92+ jsonBuffer. name(" partial" ). object(partialJsonBuffer)
93+ jsonBuffer. endObject()
94+
95+ then :
96+ jsonBuffer. toString() == ' {"partial":{"foo":"bar","quux":"baz"}}'
97+ }
98+
99+ def " partial array buffer" () {
100+ when :
101+ def partialJsonBuffer = new JsonBuffer ()
102+ partialJsonBuffer. value(" foo" )
103+ partialJsonBuffer. value(" bar" )
104+
105+ def jsonBuffer = new JsonBuffer ()
106+ jsonBuffer. beginObject()
107+ jsonBuffer. name(" partial" ). array(partialJsonBuffer)
108+ jsonBuffer. endObject()
109+
110+ then :
111+ jsonBuffer. toString() == ' {"partial":["foo","bar"]}'
112+ }
113+
114+ def " reset" () {
115+ when :
116+ def jsonBuffer = new JsonBuffer ()
117+ jsonBuffer. name(" foo" ). value(" quux" )
118+
119+ jsonBuffer. reset()
120+
121+ jsonBuffer. array(" bar" , " baz" )
122+
123+ then :
124+ jsonBuffer. toString() == ' ["bar","baz"]'
125+ }
52126}
0 commit comments