diff options
Diffstat (limited to 'runtime/commonTest/src/kotlinx/serialization/test/TestingFramework.kt')
-rw-r--r-- | runtime/commonTest/src/kotlinx/serialization/test/TestingFramework.kt | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/runtime/commonTest/src/kotlinx/serialization/test/TestingFramework.kt b/runtime/commonTest/src/kotlinx/serialization/test/TestingFramework.kt new file mode 100644 index 00000000..afba6606 --- /dev/null +++ b/runtime/commonTest/src/kotlinx/serialization/test/TestingFramework.kt @@ -0,0 +1,53 @@ +/* + * Copyright 2017-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package kotlinx.serialization.test + +import kotlinx.serialization.* +import kotlinx.serialization.json.Json +import kotlin.test.assertEquals + + +inline fun <reified T : Any> assertStringForm( + expected: String, + original: T, + serializer: KSerializer<T>, + format: StringFormat = Json.plain, + printResult: Boolean = false +) { + val string = format.stringify(serializer, original) + if (printResult) println("[Serialized form] $string") + assertEquals(expected, string) +} + +inline fun <reified T : Any> assertStringFormAndRestored( + expected: String, + original: T, + serializer: KSerializer<T>, + format: StringFormat = Json.plain, + printResult: Boolean = false +) { + val string = format.stringify(serializer, original) + if (printResult) println("[Serialized form] $string") + assertEquals(expected, string) + val restored = format.parse(serializer, string) + if (printResult) println("[Restored form] $original") + assertEquals(original, restored) +} + +inline fun <reified T : Any> StringFormat.assertStringFormAndRestored( + expected: String, + original: T, + serializer: KSerializer<T>, + printResult: Boolean = false +) { + val string = this.stringify(serializer, original) + if (printResult) println("[Serialized form] $string") + assertEquals(expected, string) + val restored = this.parse(serializer, string) + if (printResult) println("[Restored form] $original") + assertEquals(original, restored) +} + +infix fun <T> T.shouldBe(expected: T) = assertEquals(expected, this) |