1 /* 2 * Copyright 2017-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. 3 */ 4 5 @file:UseSerializers(MultiplyingIntHolderSerializer::class, MultiplyingIntSerializer::class) 6 7 package kotlinx.serialization.features 8 9 import kotlinx.serialization.* 10 import kotlinx.serialization.json.* 11 import kotlin.test.* 12 13 @Serializable 14 data class Carrier2( 15 val a: IntHolder, 16 val i: Int, 17 val nullable: Int?, 18 val nullableIntHolder: IntHolder?, 19 val nullableIntList: List<Int?> = emptyList(), 20 val nullableIntHolderNullableList: List<IntHolder?>? = null 21 ) 22 23 class UseSerializersTest { 24 @Test testOnFilenull25 fun testOnFile() { 26 val str = Json { encodeDefaults = true }.encodeToString( 27 Carrier2.serializer(), 28 Carrier2(IntHolder(42), 2, 2, IntHolder(42)) 29 ) 30 assertEquals("""{"a":84,"i":4,"nullable":4,"nullableIntHolder":84,"nullableIntList":[],"nullableIntHolderNullableList":null}""", str) 31 } 32 } 33