Coverage Summary for Class: FeatureTogglesDtoBlankDeserializer (cloud.mindbox.mobile_sdk.inapp.data.dto.deserializers)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| FeatureTogglesDtoBlankDeserializer |
100%
(1/1)
|
100%
(2/2)
|
87.5%
(7/8)
|
100%
(12/12)
|
97.3%
(72/74)
|
package cloud.mindbox.mobile_sdk.inapp.data.dto.deserializers
import cloud.mindbox.mobile_sdk.logger.mindboxLogW
import cloud.mindbox.mobile_sdk.models.operation.response.SettingsDtoBlank
import com.google.gson.JsonDeserializationContext
import com.google.gson.JsonDeserializer
import com.google.gson.JsonElement
import java.lang.reflect.Type
private typealias FeatureTogglesDtoBlank = SettingsDtoBlank.FeatureTogglesDtoBlank
internal class FeatureTogglesDtoBlankDeserializer : JsonDeserializer<FeatureTogglesDtoBlank> {
override fun deserialize(
json: JsonElement,
typeOfT: Type,
context: JsonDeserializationContext
): FeatureTogglesDtoBlank {
val jsonObject = json.asJsonObject
val result = mutableMapOf<String, Boolean?>()
jsonObject.entrySet().forEach { (key, value) ->
val booleanValue = when {
value?.isJsonPrimitive == true && value.asJsonPrimitive.isBoolean ->
value.asJsonPrimitive.asBoolean
else -> {
mindboxLogW("Feature toggle value is not boolean. key=$key, value=$value")
null
}
}
result[key] = booleanValue
}
return FeatureTogglesDtoBlank(toggles = result)
}
}