Coverage Summary for Class: InAppTagsDeserializer (cloud.mindbox.mobile_sdk.inapp.data.dto.deserializers)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| InAppTagsDeserializer |
100%
(2/2)
|
87.5%
(7/8)
|
100%
(8/8)
|
97.8%
(44/45)
|
| InAppTagsDeserializer$Companion |
|
| Total |
100%
(2/2)
|
87.5%
(7/8)
|
100%
(8/8)
|
97.8%
(44/45)
|
package cloud.mindbox.mobile_sdk.inapp.data.dto.deserializers
import com.google.gson.JsonDeserializationContext
import com.google.gson.JsonDeserializer
import com.google.gson.JsonElement
import java.lang.reflect.Type
internal class InAppTagsDeserializer : JsonDeserializer<Map<String, String>?> {
override fun deserialize(
json: JsonElement,
typeOfT: Type,
context: JsonDeserializationContext,
): Map<String, String>? {
if (json.isJsonNull) return null
if (!json.isJsonObject) return null
return json.asJsonObject.entrySet().mapNotNull { (key, value) ->
if (value.isJsonPrimitive && value.asJsonPrimitive.isString) {
key to value.asString
} else {
null
}
}.toMap()
}
companion object {
const val TAGS = "tags"
}
}