| // This file was automatically generated from basic-serialization.md by Knit tool. Do not edit. |
| package example.test |
| |
| import org.junit.Test |
| import kotlinx.knit.test.* |
| |
| class BasicSerializationTest { |
| @Test |
| fun testExampleBasic01() { |
| captureOutput("ExampleBasic01") { example.exampleBasic01.main() }.verifyOutputLinesStart( |
| "Exception in thread \"main\" kotlinx.serialization.SerializationException: Serializer for class 'Project' is not found.", |
| "Please ensure that class is marked as '@Serializable' and that the serialization compiler plugin is applied." |
| ) |
| } |
| |
| @Test |
| fun testExampleBasic02() { |
| captureOutput("ExampleBasic02") { example.exampleBasic02.main() }.verifyOutputLines( |
| "{\"name\":\"kotlinx.serialization\",\"language\":\"Kotlin\"}" |
| ) |
| } |
| |
| @Test |
| fun testExampleBasic03() { |
| captureOutput("ExampleBasic03") { example.exampleBasic03.main() }.verifyOutputLines( |
| "Project(name=kotlinx.serialization, language=Kotlin)" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses01() { |
| captureOutput("ExampleClasses01") { example.exampleClasses01.main() }.verifyOutputLines( |
| "{\"name\":\"kotlinx.serialization\",\"stars\":9000}" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses02() { |
| captureOutput("ExampleClasses02") { example.exampleClasses02.main() }.verifyOutputLines( |
| "{\"owner\":\"kotlin\",\"name\":\"kotlinx.serialization\"}" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses03() { |
| captureOutput("ExampleClasses03") { example.exampleClasses03.main() }.verifyOutputLinesStart( |
| "Exception in thread \"main\" java.lang.IllegalArgumentException: name cannot be empty" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses04() { |
| captureOutput("ExampleClasses04") { example.exampleClasses04.main() }.verifyOutputLinesStart( |
| "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: $" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses05() { |
| captureOutput("ExampleClasses05") { example.exampleClasses05.main() }.verifyOutputLines( |
| "Project(name=kotlinx.serialization, language=Kotlin)" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses06() { |
| captureOutput("ExampleClasses06") { example.exampleClasses06.main() }.verifyOutputLines( |
| "Project(name=kotlinx.serialization, language=Kotlin)" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses07() { |
| captureOutput("ExampleClasses07") { example.exampleClasses07.main() }.verifyOutputLinesStart( |
| "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: $" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses08() { |
| captureOutput("ExampleClasses08") { example.exampleClasses08.main() }.verifyOutputLinesStart( |
| "Exception in thread \"main\" kotlinx.serialization.json.internal.JsonDecodingException: Unexpected JSON token at offset 42: Encountered an unknown key 'language' at path: $.name", |
| "Use 'ignoreUnknownKeys = true' in 'Json {}' builder to ignore unknown keys." |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses09() { |
| captureOutput("ExampleClasses09") { example.exampleClasses09.main() }.verifyOutputLines( |
| "{\"name\":\"kotlinx.serialization\"}" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses10() { |
| captureOutput("ExampleClasses10") { example.exampleClasses10.main() }.verifyOutputLines( |
| "{\"name\":\"Alice\",\"projects\":[{\"name\":\"kotlinx.serialization\",\"language\":\"Kotlin\"}]}", |
| "{\"name\":\"Bob\"}" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses11() { |
| captureOutput("ExampleClasses11") { example.exampleClasses11.main() }.verifyOutputLines( |
| "{\"name\":\"kotlinx.serialization\"}" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses12() { |
| captureOutput("ExampleClasses12") { example.exampleClasses12.main() }.verifyOutputLinesStart( |
| "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", |
| "Use 'coerceInputValues = true' in 'Json {}' builder to coerce nulls if property has a default value." |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses13() { |
| captureOutput("ExampleClasses13") { example.exampleClasses13.main() }.verifyOutputLines( |
| "{\"name\":\"kotlinx.serialization\",\"owner\":{\"name\":\"kotlin\"}}" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses14() { |
| captureOutput("ExampleClasses14") { example.exampleClasses14.main() }.verifyOutputLines( |
| "{\"name\":\"kotlinx.serialization\",\"owner\":{\"name\":\"kotlin\"},\"maintainer\":{\"name\":\"kotlin\"}}" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses15() { |
| captureOutput("ExampleClasses15") { example.exampleClasses15.main() }.verifyOutputLines( |
| "{\"a\":{\"contents\":42},\"b\":{\"contents\":{\"name\":\"kotlinx.serialization\",\"language\":\"Kotlin\"}}}" |
| ) |
| } |
| |
| @Test |
| fun testExampleClasses16() { |
| captureOutput("ExampleClasses16") { example.exampleClasses16.main() }.verifyOutputLines( |
| "{\"name\":\"kotlinx.serialization\",\"lang\":\"Kotlin\"}" |
| ) |
| } |
| } |