diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ParseMode/ParseMode.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ParseMode/ParseMode.kt index be80eb450c..7a94983458 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ParseMode/ParseMode.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ParseMode/ParseMode.kt @@ -29,8 +29,7 @@ typealias HTML = HTMLParseMode @Serializer(ParseMode::class) internal object ParseModeSerializerObject : KSerializer { override fun deserialize(decoder: Decoder): ParseMode { - val mode = decoder.decodeString() - return when (mode) { + return when (decoder.decodeString()) { MarkdownParseMode.parseModeName -> MarkdownParseMode HTMLParseMode.parseModeName -> HTMLParseMode else -> throw IllegalArgumentException("Unknown parse mode") diff --git a/src/test/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatIdentifierTests.kt b/src/test/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatIdentifierTests.kt index df568f6a74..94c7798a5f 100644 --- a/src/test/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatIdentifierTests.kt +++ b/src/test/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatIdentifierTests.kt @@ -71,7 +71,7 @@ class ChatIdentifierTests { // username without starting @ symbol Example(testUsername.toUsername()).let { withUsername -> val stringified = Json.plain.stringify(Example.serializer(), withUsername).replace("@", "") - assertEquals(stringified, "{\"identifier\":\"${testUsername.replace("@", "")}\"}") + assertEquals("{\"identifier\":\"${testUsername.replace("@", "")}\"}", stringified) val deserialized = Json.plain.parse(Example.serializer(), stringified) assertEquals(withUsername, deserialized) } diff --git a/src/test/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ParseModeTests.kt b/src/test/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ParseModeTests.kt new file mode 100644 index 0000000000..42aa361716 --- /dev/null +++ b/src/test/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ParseModeTests.kt @@ -0,0 +1,38 @@ +package com.github.insanusmokrassar.TelegramBotAPI.types + +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.* +import kotlinx.serialization.ImplicitReflectionSerializer +import kotlinx.serialization.Serializable +import kotlinx.serialization.json.Json +import kotlin.test.Test +import kotlin.test.assertEquals + +@ImplicitReflectionSerializer +class ParseModeTests { + @Serializable + data class Example( + val mode: ParseMode + ) + + @Test + fun `Markdown parse mode correctly serializing and deserializing`() { + val example = Example(Markdown) + + val stringified = Json.plain.stringify(Example.serializer(), example) + assertEquals("{\"mode\":\"Markdown\"}", stringified) + + val deserialized = Json.plain.parse(Example.serializer(), stringified) + assertEquals(example, deserialized) + } + + @Test + fun `HTML parse mode correctly serializing and deserializing`() { + val example = Example(HTML) + + val stringified = Json.plain.stringify(Example.serializer(), example) + assertEquals("{\"mode\":\"HTML\"}", stringified) + + val deserialized = Json.plain.parse(Example.serializer(), stringified) + assertEquals(example, deserialized) + } +}