Skip to content

Commit 1a293dd

Browse files
committed
Fix the map key test. Add tests for multiple map entries.
1 parent b2f84e8 commit 1a293dd

File tree

1 file changed

+24
-8
lines changed
  • serialization/src/commonTest/kotlin/nl/adaptivity/xml/serialization/regressions

1 file changed

+24
-8
lines changed

serialization/src/commonTest/kotlin/nl/adaptivity/xml/serialization/regressions/CustomMapKey274.kt

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,25 +32,27 @@ import kotlin.test.assertEquals
3232

3333
class CustomMapKey274 {
3434

35+
val xml = XML { recommended_0_91_0 { formatCache = TestFormatCache(DefaultFormatCache()) } }
36+
3537
@Test
3638
fun testSerialize() {
3739
val data = MapContainer(mapOf("a" to MapElement("avalue"), "b" to MapElement("bvalue")))
3840
val expected = "<MapContainer><MapElement name=\"a\" value=\"avalue\"/><MapElement name=\"b\" value=\"bvalue\"/></MapContainer>"
39-
val actual = XML.encodeToString(data)
41+
val actual = xml.encodeToString(data)
4042
assertXmlEquals(expected, actual)
4143
}
4244

4345
@Test
4446
fun testDeserialize() {
4547
val expected = MapContainer(mapOf("a" to MapElement("avalue"), "b" to MapElement("bvalue")))
4648
val data = "<MapContainer><MapElement name=\"a\" value=\"avalue\"/><MapElement name=\"b\" value=\"bvalue\"/></MapContainer>"
47-
val actual = XML.decodeFromString<MapContainer>(data)
49+
val actual = xml.decodeFromString<MapContainer>(data)
4850
assertEquals(expected, actual)
4951
}
5052

5153
@Test
5254
fun testSerializeNotCollapsed() {
53-
val xml = XML{}.copy {
55+
val xml = xml.copy {
5456
policy = object : DefaultXmlSerializationPolicy(policy) {
5557
override fun isMapValueCollapsed(mapParent: SafeParentInfo, valueDescriptor: XmlDescriptor): Boolean {
5658
return false
@@ -67,7 +69,7 @@ class CustomMapKey274 {
6769

6870
@Test
6971
fun testDeserializeNotCollapsed() {
70-
val xml = XML{}.copy {
72+
val xml = xml.copy {
7173
policy = object : DefaultXmlSerializationPolicy(policy) {
7274
override fun isMapValueCollapsed(mapParent: SafeParentInfo, valueDescriptor: XmlDescriptor): Boolean {
7375
return false
@@ -84,7 +86,7 @@ class CustomMapKey274 {
8486

8587
@Test
8688
fun testSerializeNotCollapsedPolicy() {
87-
val xml = XML{}.copy {
89+
val xml = xml.copy {
8890
policy = object : DefaultXmlSerializationPolicy(policy) {
8991
override fun isMapValueCollapsed(mapParent: SafeParentInfo, valueDescriptor: XmlDescriptor): Boolean {
9092
return false
@@ -101,7 +103,7 @@ class CustomMapKey274 {
101103

102104
@Test
103105
fun testDeserializeNotCollapsedPolicy() {
104-
val xml = XML{}.copy {
106+
val xml = xml.copy {
105107
policy = object : DefaultXmlSerializationPolicy(policy) {
106108
override fun isMapValueCollapsed(mapParent: SafeParentInfo, valueDescriptor: XmlDescriptor): Boolean {
107109
return false
@@ -120,7 +122,21 @@ class CustomMapKey274 {
120122
fun testSerializeStringMap() {
121123
val data = MyClass(mapOf("abc" to "def"))
122124
val expected="<MyClass><value key=\"abc\" value=\"def\"/></MyClass>"
123-
assertXmlEquals(expected, XML.encodeToString(data))
125+
assertXmlEquals(expected, xml.encodeToString(data))
126+
}
127+
128+
@Test
129+
fun testSerializeStringMultipleMap() {
130+
val data = MyClass(mapOf("abc" to "def", "123" to "456"))
131+
val expected="<MyClass><value key=\"abc\" value=\"def\"/><value key=\"123\" value=\"456\"/></MyClass>"
132+
assertXmlEquals(expected, xml.encodeToString(data))
133+
}
134+
135+
@Test
136+
fun testDeserializeStringMap() {
137+
val expected = MyClass(mapOf("abc" to "def", "123" to "456"))
138+
val data="<MyClass><value key=\"abc\" value=\"def\"/><value key=\"123\" value=\"456\"/></MyClass>"
139+
assertEquals(expected, xml.decodeFromString<MyClass>(data))
124140
}
125141

126142
@Serializable
@@ -143,5 +159,5 @@ class CustomMapKey274 {
143159
)
144160

145161
@Serializable
146-
class MyClass(val map: Map<String, String>)
162+
data class MyClass(val map: Map<String, String>)
147163
}

0 commit comments

Comments
 (0)