summaryrefslogtreecommitdiff
path: root/formats/json/commonTest/src/kotlinx/serialization/EncodingCollectionsTest.kt
blob: cd077e04f997e6fde19fb616359c8980a2e0999c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package kotlinx.serialization

import kotlinx.serialization.builtins.ListSerializer
import kotlinx.serialization.builtins.serializer
import kotlinx.serialization.descriptors.*
import kotlinx.serialization.encoding.*
import kotlinx.serialization.json.*
import kotlin.test.*

class EncodingCollectionsTest {
    object ListSerializer : KSerializer<List<String>> {
        override val descriptor: SerialDescriptor = ListSerializer(String.serializer()).descriptor

        override fun serialize(encoder: Encoder, value: List<String>) {
            encoder.encodeCollection(descriptor, value) { index, item ->
                encodeStringElement(descriptor, index, item)
            }
        }

        override fun deserialize(decoder: Decoder): List<String> = throw NotImplementedError()
    }

    @Test
    fun testEncoding() {
        assertEquals("""["Hello","World!"]""", Json.encodeToString(ListSerializer, listOf("Hello", "World!")))
    }
}