• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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