1 /* 2 * Copyright 2017-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. 3 */ 4 5 package kotlinx.serialization 6 7 import kotlinx.serialization.modules.* 8 import kotlinx.serialization.test.* 9 import kotlin.test.* 10 import kotlin.time.* 11 12 class CachedSerializersTest { 13 @Serializable 14 object Object 15 16 @Serializable 17 sealed class SealedParent { 18 @Serializable 19 data class Child(val i: Int) : SealedParent() 20 } 21 22 @Serializable 23 abstract class Abstract 24 25 @Serializable 26 enum class SerializableEnum {A, B} 27 28 @SerialInfo 29 annotation class MyAnnotation(val x: Int) 30 31 @Serializable 32 enum class SerializableMarkedEnum { 33 @SerialName("first") 34 @MyAnnotation(1) 35 C, 36 @MyAnnotation(2) 37 D 38 } 39 40 @Test testObjectSerializersAreSamenull41 fun testObjectSerializersAreSame() { 42 assertSame(Object.serializer(), Object.serializer()) 43 } 44 45 @Test testSerializableEnumSerializersAreSamenull46 fun testSerializableEnumSerializersAreSame() { 47 assertSame(SerializableEnum.serializer(), SerializableEnum.serializer()) 48 } 49 50 @Test testSerializableMarkedEnumSerializersAreSamenull51 fun testSerializableMarkedEnumSerializersAreSame() { 52 assertSame(SerializableMarkedEnum.serializer(), SerializableMarkedEnum.serializer()) 53 } 54 55 @Test testSealedSerializersAreSamenull56 fun testSealedSerializersAreSame() { 57 assertSame(SealedParent.serializer(), SealedParent.serializer()) 58 } 59 60 @Test testAbstractSerializersAreSamenull61 fun testAbstractSerializersAreSame() { 62 assertSame(Abstract.serializer(), Abstract.serializer()) 63 } 64 } 65 66