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