1*57b5a4a6SAndroid Build Coastguard Worker // This file was automatically generated from basic-serialization.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 BasicSerializationTest { 8*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleBasic01null9*57b5a4a6SAndroid Build Coastguard Worker fun testExampleBasic01() { 10*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleBasic01") { example.exampleBasic01.main() }.verifyOutputLinesStart( 11*57b5a4a6SAndroid Build Coastguard Worker "Exception in thread \"main\" kotlinx.serialization.SerializationException: Serializer for class 'Project' is not found.", 12*57b5a4a6SAndroid Build Coastguard Worker "Please ensure that class is marked as '@Serializable' and that the serialization compiler plugin is applied." 13*57b5a4a6SAndroid Build Coastguard Worker ) 14*57b5a4a6SAndroid Build Coastguard Worker } 15*57b5a4a6SAndroid Build Coastguard Worker 16*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleBasic02null17*57b5a4a6SAndroid Build Coastguard Worker fun testExampleBasic02() { 18*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleBasic02") { example.exampleBasic02.main() }.verifyOutputLines( 19*57b5a4a6SAndroid Build Coastguard Worker "{\"name\":\"kotlinx.serialization\",\"language\":\"Kotlin\"}" 20*57b5a4a6SAndroid Build Coastguard Worker ) 21*57b5a4a6SAndroid Build Coastguard Worker } 22*57b5a4a6SAndroid Build Coastguard Worker 23*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleBasic03null24*57b5a4a6SAndroid Build Coastguard Worker fun testExampleBasic03() { 25*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleBasic03") { example.exampleBasic03.main() }.verifyOutputLines( 26*57b5a4a6SAndroid Build Coastguard Worker "Project(name=kotlinx.serialization, language=Kotlin)" 27*57b5a4a6SAndroid Build Coastguard Worker ) 28*57b5a4a6SAndroid Build Coastguard Worker } 29*57b5a4a6SAndroid Build Coastguard Worker 30*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses01null31*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses01() { 32*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses01") { example.exampleClasses01.main() }.verifyOutputLines( 33*57b5a4a6SAndroid Build Coastguard Worker "{\"name\":\"kotlinx.serialization\",\"stars\":9000}" 34*57b5a4a6SAndroid Build Coastguard Worker ) 35*57b5a4a6SAndroid Build Coastguard Worker } 36*57b5a4a6SAndroid Build Coastguard Worker 37*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses02null38*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses02() { 39*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses02") { example.exampleClasses02.main() }.verifyOutputLines( 40*57b5a4a6SAndroid Build Coastguard Worker "{\"owner\":\"kotlin\",\"name\":\"kotlinx.serialization\"}" 41*57b5a4a6SAndroid Build Coastguard Worker ) 42*57b5a4a6SAndroid Build Coastguard Worker } 43*57b5a4a6SAndroid Build Coastguard Worker 44*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses03null45*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses03() { 46*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses03") { example.exampleClasses03.main() }.verifyOutputLinesStart( 47*57b5a4a6SAndroid Build Coastguard Worker "Exception in thread \"main\" java.lang.IllegalArgumentException: name cannot be empty" 48*57b5a4a6SAndroid Build Coastguard Worker ) 49*57b5a4a6SAndroid Build Coastguard Worker } 50*57b5a4a6SAndroid Build Coastguard Worker 51*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses04null52*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses04() { 53*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses04") { example.exampleClasses04.main() }.verifyOutputLinesStart( 54*57b5a4a6SAndroid Build Coastguard Worker "Exception in thread \"main\" kotlinx.serialization.MissingFieldException: Field 'language' is required for type with serial name 'example.exampleClasses04.Project', but it was missing at path: $" 55*57b5a4a6SAndroid Build Coastguard Worker ) 56*57b5a4a6SAndroid Build Coastguard Worker } 57*57b5a4a6SAndroid Build Coastguard Worker 58*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses05null59*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses05() { 60*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses05") { example.exampleClasses05.main() }.verifyOutputLines( 61*57b5a4a6SAndroid Build Coastguard Worker "Project(name=kotlinx.serialization, language=Kotlin)" 62*57b5a4a6SAndroid Build Coastguard Worker ) 63*57b5a4a6SAndroid Build Coastguard Worker } 64*57b5a4a6SAndroid Build Coastguard Worker 65*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses06null66*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses06() { 67*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses06") { example.exampleClasses06.main() }.verifyOutputLines( 68*57b5a4a6SAndroid Build Coastguard Worker "Project(name=kotlinx.serialization, language=Kotlin)" 69*57b5a4a6SAndroid Build Coastguard Worker ) 70*57b5a4a6SAndroid Build Coastguard Worker } 71*57b5a4a6SAndroid Build Coastguard Worker 72*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses07null73*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses07() { 74*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses07") { example.exampleClasses07.main() }.verifyOutputLinesStart( 75*57b5a4a6SAndroid Build Coastguard Worker "Exception in thread \"main\" kotlinx.serialization.MissingFieldException: Field 'language' is required for type with serial name 'example.exampleClasses07.Project', but it was missing at path: $" 76*57b5a4a6SAndroid Build Coastguard Worker ) 77*57b5a4a6SAndroid Build Coastguard Worker } 78*57b5a4a6SAndroid Build Coastguard Worker 79*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses08null80*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses08() { 81*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses08") { example.exampleClasses08.main() }.verifyOutputLinesStart( 82*57b5a4a6SAndroid Build Coastguard Worker "Exception in thread \"main\" kotlinx.serialization.json.internal.JsonDecodingException: Unexpected JSON token at offset 42: Encountered an unknown key 'language' at path: $.name", 83*57b5a4a6SAndroid Build Coastguard Worker "Use 'ignoreUnknownKeys = true' in 'Json {}' builder to ignore unknown keys." 84*57b5a4a6SAndroid Build Coastguard Worker ) 85*57b5a4a6SAndroid Build Coastguard Worker } 86*57b5a4a6SAndroid Build Coastguard Worker 87*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses09null88*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses09() { 89*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses09") { example.exampleClasses09.main() }.verifyOutputLines( 90*57b5a4a6SAndroid Build Coastguard Worker "{\"name\":\"kotlinx.serialization\"}" 91*57b5a4a6SAndroid Build Coastguard Worker ) 92*57b5a4a6SAndroid Build Coastguard Worker } 93*57b5a4a6SAndroid Build Coastguard Worker 94*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses10null95*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses10() { 96*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses10") { example.exampleClasses10.main() }.verifyOutputLines( 97*57b5a4a6SAndroid Build Coastguard Worker "{\"name\":\"Alice\",\"projects\":[{\"name\":\"kotlinx.serialization\",\"language\":\"Kotlin\"}]}", 98*57b5a4a6SAndroid Build Coastguard Worker "{\"name\":\"Bob\"}" 99*57b5a4a6SAndroid Build Coastguard Worker ) 100*57b5a4a6SAndroid Build Coastguard Worker } 101*57b5a4a6SAndroid Build Coastguard Worker 102*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses11null103*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses11() { 104*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses11") { example.exampleClasses11.main() }.verifyOutputLines( 105*57b5a4a6SAndroid Build Coastguard Worker "{\"name\":\"kotlinx.serialization\"}" 106*57b5a4a6SAndroid Build Coastguard Worker ) 107*57b5a4a6SAndroid Build Coastguard Worker } 108*57b5a4a6SAndroid Build Coastguard Worker 109*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses12null110*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses12() { 111*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses12") { example.exampleClasses12.main() }.verifyOutputLinesStart( 112*57b5a4a6SAndroid Build Coastguard Worker "Exception in thread \"main\" kotlinx.serialization.json.internal.JsonDecodingException: Unexpected JSON token at offset 52: Expected string literal but 'null' literal was found at path: $.language", 113*57b5a4a6SAndroid Build Coastguard Worker "Use 'coerceInputValues = true' in 'Json {}' builder to coerce nulls if property has a default value." 114*57b5a4a6SAndroid Build Coastguard Worker ) 115*57b5a4a6SAndroid Build Coastguard Worker } 116*57b5a4a6SAndroid Build Coastguard Worker 117*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses13null118*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses13() { 119*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses13") { example.exampleClasses13.main() }.verifyOutputLines( 120*57b5a4a6SAndroid Build Coastguard Worker "{\"name\":\"kotlinx.serialization\",\"owner\":{\"name\":\"kotlin\"}}" 121*57b5a4a6SAndroid Build Coastguard Worker ) 122*57b5a4a6SAndroid Build Coastguard Worker } 123*57b5a4a6SAndroid Build Coastguard Worker 124*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses14null125*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses14() { 126*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses14") { example.exampleClasses14.main() }.verifyOutputLines( 127*57b5a4a6SAndroid Build Coastguard Worker "{\"name\":\"kotlinx.serialization\",\"owner\":{\"name\":\"kotlin\"},\"maintainer\":{\"name\":\"kotlin\"}}" 128*57b5a4a6SAndroid Build Coastguard Worker ) 129*57b5a4a6SAndroid Build Coastguard Worker } 130*57b5a4a6SAndroid Build Coastguard Worker 131*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses15null132*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses15() { 133*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses15") { example.exampleClasses15.main() }.verifyOutputLines( 134*57b5a4a6SAndroid Build Coastguard Worker "{\"a\":{\"contents\":42},\"b\":{\"contents\":{\"name\":\"kotlinx.serialization\",\"language\":\"Kotlin\"}}}" 135*57b5a4a6SAndroid Build Coastguard Worker ) 136*57b5a4a6SAndroid Build Coastguard Worker } 137*57b5a4a6SAndroid Build Coastguard Worker 138*57b5a4a6SAndroid Build Coastguard Worker @Test testExampleClasses16null139*57b5a4a6SAndroid Build Coastguard Worker fun testExampleClasses16() { 140*57b5a4a6SAndroid Build Coastguard Worker captureOutput("ExampleClasses16") { example.exampleClasses16.main() }.verifyOutputLines( 141*57b5a4a6SAndroid Build Coastguard Worker "{\"name\":\"kotlinx.serialization\",\"lang\":\"Kotlin\"}" 142*57b5a4a6SAndroid Build Coastguard Worker ) 143*57b5a4a6SAndroid Build Coastguard Worker } 144*57b5a4a6SAndroid Build Coastguard Worker } 145