Skip to content

Commit 416f728

Browse files
committed
Adding more JSON tests - nesting, partials, and reset
1 parent aa76a5c commit 416f728

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

dd-java-agent/src/test/groovy/datadog/trace/bootstrap/JsonBufferTest.groovy

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)