1 /* 2 * Copyright 2017-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. 3 */ 4 5 package kotlinx.serialization.protobuf 6 7 import kotlinx.serialization.* 8 import org.junit.Test 9 import kotlin.test.assertEquals 10 import kotlin.test.assertTrue 11 12 class ProtoCompatibilityTest { 13 14 @Test testMapnull15 fun testMap() { 16 val mapData = RandomTest.KTestData.KTestMap(mapOf("a" to "b", "c" to "d"), emptyMap()) 17 val kxData = ProtoBuf.encodeToByteArray(mapData) 18 val kxHex = ProtoBuf.encodeToHexString(mapData) 19 val protoHex = mapData.toProtobufMessage().toHex() 20 assertTrue(kxHex.equals(protoHex, ignoreCase = true)) 21 val deserializedData: RandomTest.KTestData.KTestMap = ProtoBuf.decodeFromHexString(kxHex) 22 val parsedMsg = mapData.toProtobufMessage().parserForType.parseFrom(kxData) 23 assertEquals(mapData, deserializedData) 24 assertEquals(parsedMsg, deserializedData.toProtobufMessage()) 25 } 26 } 27