xref: /aosp_15_r20/external/kotlinx.serialization/guide/test/JsonTest.kt (revision 57b5a4a64c534cf7f27ac9427ceab07f3d8ed3d8)
1*57b5a4a6SAndroid Build Coastguard Worker // This file was automatically generated from json.md by Knit tool. Do not edit.
2*57b5a4a6SAndroid Build Coastguard Worker package example.test
3*57b5a4a6SAndroid Build Coastguard Worker 
4*57b5a4a6SAndroid Build Coastguard Worker import org.junit.Test
5*57b5a4a6SAndroid Build Coastguard Worker import kotlinx.knit.test.*
6*57b5a4a6SAndroid Build Coastguard Worker 
7*57b5a4a6SAndroid Build Coastguard Worker class JsonTest {
8*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson01null9*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson01() {
10*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson01") { example.exampleJson01.main() }.verifyOutputLines(
11*57b5a4a6SAndroid Build Coastguard Worker             "{",
12*57b5a4a6SAndroid Build Coastguard Worker             "    \"name\": \"kotlinx.serialization\",",
13*57b5a4a6SAndroid Build Coastguard Worker             "    \"language\": \"Kotlin\"",
14*57b5a4a6SAndroid Build Coastguard Worker             "}"
15*57b5a4a6SAndroid Build Coastguard Worker         )
16*57b5a4a6SAndroid Build Coastguard Worker     }
17*57b5a4a6SAndroid Build Coastguard Worker 
18*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson02null19*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson02() {
20*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson02") { example.exampleJson02.main() }.verifyOutputLines(
21*57b5a4a6SAndroid Build Coastguard Worker             "Project(name=kotlinx.serialization, status=SUPPORTED, votes=9000)"
22*57b5a4a6SAndroid Build Coastguard Worker         )
23*57b5a4a6SAndroid Build Coastguard Worker     }
24*57b5a4a6SAndroid Build Coastguard Worker 
25*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson03null26*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson03() {
27*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson03") { example.exampleJson03.main() }.verifyOutputLines(
28*57b5a4a6SAndroid Build Coastguard Worker             "Project(name=kotlinx.serialization)"
29*57b5a4a6SAndroid Build Coastguard Worker         )
30*57b5a4a6SAndroid Build Coastguard Worker     }
31*57b5a4a6SAndroid Build Coastguard Worker 
32*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson04null33*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson04() {
34*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson04") { example.exampleJson04.main() }.verifyOutputLines(
35*57b5a4a6SAndroid Build Coastguard Worker             "Project(name=kotlinx.serialization)",
36*57b5a4a6SAndroid Build Coastguard Worker             "Project(name=kotlinx.coroutines)"
37*57b5a4a6SAndroid Build Coastguard Worker         )
38*57b5a4a6SAndroid Build Coastguard Worker     }
39*57b5a4a6SAndroid Build Coastguard Worker 
40*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson05null41*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson05() {
42*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson05") { example.exampleJson05.main() }.verifyOutputLines(
43*57b5a4a6SAndroid Build Coastguard Worker             "Project(name=kotlinx.serialization, language=Kotlin)"
44*57b5a4a6SAndroid Build Coastguard Worker         )
45*57b5a4a6SAndroid Build Coastguard Worker     }
46*57b5a4a6SAndroid Build Coastguard Worker 
47*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson06null48*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson06() {
49*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson06") { example.exampleJson06.main() }.verifyOutputLines(
50*57b5a4a6SAndroid Build Coastguard Worker             "{\"name\":\"kotlinx.serialization\",\"language\":\"Kotlin\",\"website\":null}"
51*57b5a4a6SAndroid Build Coastguard Worker         )
52*57b5a4a6SAndroid Build Coastguard Worker     }
53*57b5a4a6SAndroid Build Coastguard Worker 
54*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson07null55*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson07() {
56*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson07") { example.exampleJson07.main() }.verifyOutputLines(
57*57b5a4a6SAndroid Build Coastguard Worker             "{\"name\":\"kotlinx.serialization\",\"language\":\"Kotlin\"}",
58*57b5a4a6SAndroid Build Coastguard Worker             "Project(name=kotlinx.serialization, language=Kotlin, version=1.2.2, website=null, description=null)"
59*57b5a4a6SAndroid Build Coastguard Worker         )
60*57b5a4a6SAndroid Build Coastguard Worker     }
61*57b5a4a6SAndroid Build Coastguard Worker 
62*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson08null63*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson08() {
64*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson08") { example.exampleJson08.main() }.verifyOutputLines(
65*57b5a4a6SAndroid Build Coastguard Worker             "[{\"name\":\"kotlinx.serialization\"},\"Serialization\",{\"name\":\"kotlinx.coroutines\"},\"Coroutines\"]"
66*57b5a4a6SAndroid Build Coastguard Worker         )
67*57b5a4a6SAndroid Build Coastguard Worker     }
68*57b5a4a6SAndroid Build Coastguard Worker 
69*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson09null70*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson09() {
71*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson09") { example.exampleJson09.main() }.verifyOutputLines(
72*57b5a4a6SAndroid Build Coastguard Worker             "{\"value\":NaN}"
73*57b5a4a6SAndroid Build Coastguard Worker         )
74*57b5a4a6SAndroid Build Coastguard Worker     }
75*57b5a4a6SAndroid Build Coastguard Worker 
76*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson10null77*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson10() {
78*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson10") { example.exampleJson10.main() }.verifyOutputLines(
79*57b5a4a6SAndroid Build Coastguard Worker             "{\"#class\":\"owned\",\"name\":\"kotlinx.coroutines\",\"owner\":\"kotlin\"}"
80*57b5a4a6SAndroid Build Coastguard Worker         )
81*57b5a4a6SAndroid Build Coastguard Worker     }
82*57b5a4a6SAndroid Build Coastguard Worker 
83*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson11null84*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson11() {
85*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson11") { example.exampleJson11.main() }.verifyOutputLines(
86*57b5a4a6SAndroid Build Coastguard Worker             "{\"message\":{\"message_type\":\"my.app.BaseMessage\",\"message\":\"not found\"},\"error\":{\"message_type\":\"my.app.GenericError\",\"error_code\":404}}"
87*57b5a4a6SAndroid Build Coastguard Worker         )
88*57b5a4a6SAndroid Build Coastguard Worker     }
89*57b5a4a6SAndroid Build Coastguard Worker 
90*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson12null91*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson12() {
92*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson12") { example.exampleJson12.main() }.verifyOutputLines(
93*57b5a4a6SAndroid Build Coastguard Worker             "{\"name\":\"kotlinx.coroutines\",\"owner\":\"kotlin\"}"
94*57b5a4a6SAndroid Build Coastguard Worker         )
95*57b5a4a6SAndroid Build Coastguard Worker     }
96*57b5a4a6SAndroid Build Coastguard Worker 
97*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson13null98*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson13() {
99*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson13") { example.exampleJson13.main() }.verifyOutputLines(
100*57b5a4a6SAndroid Build Coastguard Worker             "CasesList(cases=[VALUE_A, VALUE_B])"
101*57b5a4a6SAndroid Build Coastguard Worker         )
102*57b5a4a6SAndroid Build Coastguard Worker     }
103*57b5a4a6SAndroid Build Coastguard Worker 
104*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson14null105*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson14() {
106*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson14") { example.exampleJson14.main() }.verifyOutputLines(
107*57b5a4a6SAndroid Build Coastguard Worker             "{\"project_name\":\"kotlinx.serialization\",\"project_owner\":\"Kotlin\"}"
108*57b5a4a6SAndroid Build Coastguard Worker         )
109*57b5a4a6SAndroid Build Coastguard Worker     }
110*57b5a4a6SAndroid Build Coastguard Worker 
111*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson15null112*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson15() {
113*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson15") { example.exampleJson15.main() }.verifyOutputLines(
114*57b5a4a6SAndroid Build Coastguard Worker             "{\"name\":\"kotlinx.serialization\",\"language\":\"Kotlin\"}"
115*57b5a4a6SAndroid Build Coastguard Worker         )
116*57b5a4a6SAndroid Build Coastguard Worker     }
117*57b5a4a6SAndroid Build Coastguard Worker 
118*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson16null119*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson16() {
120*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson16") { example.exampleJson16.main() }.verifyOutputLines(
121*57b5a4a6SAndroid Build Coastguard Worker             "9042"
122*57b5a4a6SAndroid Build Coastguard Worker         )
123*57b5a4a6SAndroid Build Coastguard Worker     }
124*57b5a4a6SAndroid Build Coastguard Worker 
125*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson17null126*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson17() {
127*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson17") { example.exampleJson17.main() }.verifyOutputLines(
128*57b5a4a6SAndroid Build Coastguard Worker             "{\"name\":\"kotlinx.serialization\",\"owner\":{\"name\":\"kotlin\"},\"forks\":[{\"votes\":42},{\"votes\":9000}]}"
129*57b5a4a6SAndroid Build Coastguard Worker         )
130*57b5a4a6SAndroid Build Coastguard Worker     }
131*57b5a4a6SAndroid Build Coastguard Worker 
132*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson18null133*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson18() {
134*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson18") { example.exampleJson18.main() }.verifyOutputLines(
135*57b5a4a6SAndroid Build Coastguard Worker             "Project(name=kotlinx.serialization, language=Kotlin)"
136*57b5a4a6SAndroid Build Coastguard Worker         )
137*57b5a4a6SAndroid Build Coastguard Worker     }
138*57b5a4a6SAndroid Build Coastguard Worker 
139*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson19null140*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson19() {
141*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson19") { example.exampleJson19.main() }.verifyOutputLines(
142*57b5a4a6SAndroid Build Coastguard Worker             "{",
143*57b5a4a6SAndroid Build Coastguard Worker             "    \"pi_double\": 3.141592653589793,",
144*57b5a4a6SAndroid Build Coastguard Worker             "    \"pi_string\": \"3.141592653589793238462643383279\"",
145*57b5a4a6SAndroid Build Coastguard Worker             "}"
146*57b5a4a6SAndroid Build Coastguard Worker         )
147*57b5a4a6SAndroid Build Coastguard Worker     }
148*57b5a4a6SAndroid Build Coastguard Worker 
149*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson20null150*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson20() {
151*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson20") { example.exampleJson20.main() }.verifyOutputLines(
152*57b5a4a6SAndroid Build Coastguard Worker             "{",
153*57b5a4a6SAndroid Build Coastguard Worker             "    \"pi_literal\": 3.141592653589793238462643383279,",
154*57b5a4a6SAndroid Build Coastguard Worker             "    \"pi_double\": 3.141592653589793,",
155*57b5a4a6SAndroid Build Coastguard Worker             "    \"pi_string\": \"3.141592653589793238462643383279\"",
156*57b5a4a6SAndroid Build Coastguard Worker             "}"
157*57b5a4a6SAndroid Build Coastguard Worker         )
158*57b5a4a6SAndroid Build Coastguard Worker     }
159*57b5a4a6SAndroid Build Coastguard Worker 
160*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson21null161*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson21() {
162*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson21") { example.exampleJson21.main() }.verifyOutputLines(
163*57b5a4a6SAndroid Build Coastguard Worker             "3.141592653589793238462643383279"
164*57b5a4a6SAndroid Build Coastguard Worker         )
165*57b5a4a6SAndroid Build Coastguard Worker     }
166*57b5a4a6SAndroid Build Coastguard Worker 
167*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson22null168*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson22() {
169*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson22") { example.exampleJson22.main() }.verifyOutputLinesStart(
170*57b5a4a6SAndroid Build Coastguard Worker             "Exception in thread \"main\" kotlinx.serialization.json.internal.JsonEncodingException: Creating a literal unquoted value of 'null' is forbidden. If you want to create JSON null literal, use JsonNull object, otherwise, use JsonPrimitive"
171*57b5a4a6SAndroid Build Coastguard Worker         )
172*57b5a4a6SAndroid Build Coastguard Worker     }
173*57b5a4a6SAndroid Build Coastguard Worker 
174*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson23null175*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson23() {
176*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson23") { example.exampleJson23.main() }.verifyOutputLines(
177*57b5a4a6SAndroid Build Coastguard Worker             "Project(name=kotlinx.serialization, users=[User(name=kotlin)])",
178*57b5a4a6SAndroid Build Coastguard Worker             "Project(name=kotlinx.serialization, users=[User(name=kotlin), User(name=jetbrains)])"
179*57b5a4a6SAndroid Build Coastguard Worker         )
180*57b5a4a6SAndroid Build Coastguard Worker     }
181*57b5a4a6SAndroid Build Coastguard Worker 
182*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson24null183*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson24() {
184*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson24") { example.exampleJson24.main() }.verifyOutputLines(
185*57b5a4a6SAndroid Build Coastguard Worker             "{\"name\":\"kotlinx.serialization\",\"users\":{\"name\":\"kotlin\"}}"
186*57b5a4a6SAndroid Build Coastguard Worker         )
187*57b5a4a6SAndroid Build Coastguard Worker     }
188*57b5a4a6SAndroid Build Coastguard Worker 
189*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson25null190*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson25() {
191*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson25") { example.exampleJson25.main() }.verifyOutputLines(
192*57b5a4a6SAndroid Build Coastguard Worker             "{\"name\":\"kotlinx.serialization\",\"language\":\"Kotlin\"}",
193*57b5a4a6SAndroid Build Coastguard Worker             "{\"name\":\"kotlinx.serialization\"}"
194*57b5a4a6SAndroid Build Coastguard Worker         )
195*57b5a4a6SAndroid Build Coastguard Worker     }
196*57b5a4a6SAndroid Build Coastguard Worker 
197*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson26null198*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson26() {
199*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson26") { example.exampleJson26.main() }.verifyOutputLines(
200*57b5a4a6SAndroid Build Coastguard Worker             "[{\"name\":\"kotlinx.serialization\",\"owner\":\"kotlin\"},{\"name\":\"example\"}]",
201*57b5a4a6SAndroid Build Coastguard Worker             "[OwnedProject(name=kotlinx.serialization, owner=kotlin), BasicProject(name=example)]"
202*57b5a4a6SAndroid Build Coastguard Worker         )
203*57b5a4a6SAndroid Build Coastguard Worker     }
204*57b5a4a6SAndroid Build Coastguard Worker 
205*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson27null206*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson27() {
207*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson27") { example.exampleJson27.main() }.verifyOutputLines(
208*57b5a4a6SAndroid Build Coastguard Worker             "[{\"name\":\"kotlinx.serialization\"},{\"error\":\"Not found\"}]",
209*57b5a4a6SAndroid Build Coastguard Worker             "[Ok(data=Project(name=kotlinx.serialization)), Error(message=Not found)]"
210*57b5a4a6SAndroid Build Coastguard Worker         )
211*57b5a4a6SAndroid Build Coastguard Worker     }
212*57b5a4a6SAndroid Build Coastguard Worker 
213*57b5a4a6SAndroid Build Coastguard Worker     @Test
testExampleJson28null214*57b5a4a6SAndroid Build Coastguard Worker     fun testExampleJson28() {
215*57b5a4a6SAndroid Build Coastguard Worker         captureOutput("ExampleJson28") { example.exampleJson28.main() }.verifyOutputLines(
216*57b5a4a6SAndroid Build Coastguard Worker             "UnknownProject(name=example, details={\"type\":\"unknown\",\"maintainer\":\"Unknown\",\"license\":\"Apache 2.0\"})"
217*57b5a4a6SAndroid Build Coastguard Worker         )
218*57b5a4a6SAndroid Build Coastguard Worker     }
219*57b5a4a6SAndroid Build Coastguard Worker }
220