@@ -24,7 +24,10 @@ class HoconPolymorphismTest {
24
24
}
25
25
26
26
@Serializable
27
- data class SealedContainer (val sealed : Collection <Sealed >)
27
+ data class SealedCollectionContainer (val sealed : Collection <Sealed >)
28
+
29
+ @Serializable
30
+ data class SealedMapContainer (val sealed : Map <String , Sealed >)
28
31
29
32
@Serializable
30
33
data class CompositeClass (var sealed : Sealed )
@@ -116,14 +119,35 @@ class HoconPolymorphismTest {
116
119
{ type = data_class, name = testDataClass, intField = 1 }
117
120
]
118
121
""" .trimIndent(),
119
- original = SealedContainer (
122
+ original = SealedCollectionContainer (
120
123
listOf (
121
124
Sealed .AnnotatedTypeChild (type = " override" ),
122
125
Sealed .ObjectChild ,
123
126
Sealed .DataClassChild (name = " testDataClass" ),
124
127
)
125
128
),
126
- serializer = SealedContainer .serializer(),
129
+ serializer = SealedCollectionContainer .serializer(),
130
+ )
131
+ }
132
+
133
+ @Test
134
+ fun testMapContainer () {
135
+ objectHocon.assertStringFormAndRestored(
136
+ expected = """
137
+ sealed = {
138
+ "annotated_type_child" = { type = annotated_type_child, my_type = override, intField = 3 }
139
+ "object" = { type = object }
140
+ "data_class" = { type = data_class, name = testDataClass, intField = 1 }
141
+ }
142
+ """ .trimIndent(),
143
+ original = SealedMapContainer (
144
+ mapOf (
145
+ " annotated_type_child" to Sealed .AnnotatedTypeChild (type = " override" ),
146
+ " object" to Sealed .ObjectChild ,
147
+ " data_class" to Sealed .DataClassChild (name = " testDataClass" ),
148
+ )
149
+ ),
150
+ serializer = SealedMapContainer .serializer(),
127
151
)
128
152
}
129
153
}
0 commit comments