summaryrefslogtreecommitdiff
path: root/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonReifiedCollectionsTest.kt
blob: 3fc6248981636ab35c35373de45ce2ca5e5a736e (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
28
29
/*
 * Copyright 2017-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
 */

package kotlinx.serialization.json

import kotlinx.serialization.*
import kotlin.test.*

class JsonReifiedCollectionsTest : JsonTestBase() {
    @Serializable
    data class DataHolder(val data: String)

    @Test
    fun testReifiedList() = parametrizedTest { jsonTestingMode ->
        val data = listOf(DataHolder("data"), DataHolder("not data"))
        val json = default.encodeToString(data, jsonTestingMode)
        val data2 = default.decodeFromString<List<DataHolder>>(json, jsonTestingMode)
        assertEquals(data, data2)
    }

    @Test
    fun testReifiedMap() = parametrizedTest { jsonTestingMode ->
        val data = mapOf("data" to DataHolder("data"), "smth" to DataHolder("not data"))
        val json = lenient.encodeToString(data, jsonTestingMode)
        val data2 = lenient.decodeFromString<Map<String, DataHolder>>(json, jsonTestingMode)
        assertEquals(data, data2)
    }
}