Add KdfTypeJson and associated BaseEnumeratedIntSerializer (#131)

This commit is contained in:
Brian Yencho
2023-10-18 15:05:33 -05:00
committed by GitHub
parent 89e980ac59
commit cbea25db78
5 changed files with 131 additions and 14 deletions

View File

@@ -0,0 +1,50 @@
package com.x8bit.bitwarden.data.platform.datasource.network.serializer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.encodeToJsonElement
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
class BaseEnumeratedIntSerializerTest {
private val json = Json
@Test
fun `properly deserializes integers to enums`() {
assertEquals(
TestEnum.CASE_1,
json.decodeFromString<TestEnum>(
"""
1
""",
),
)
}
@Test
fun `properly serializes enums back to integers`() {
assertEquals(
json.parseToJsonElement(
"""
1
""",
),
json.encodeToJsonElement(
TestEnum.CASE_1,
),
)
}
}
@Serializable(TestEnumSerializer::class)
private enum class TestEnum {
@SerialName("1")
CASE_1,
@SerialName("2")
CASE_2,
}
private class TestEnumSerializer :
BaseEnumeratedIntSerializer<TestEnum>(values = TestEnum.values())