Coverage Summary for Class: InAppSerializationManagerImpl (cloud.mindbox.mobile_sdk.inapp.data.managers)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| InAppSerializationManagerImpl |
100%
(8/8)
|
|
100%
(8/8)
|
100%
(77/77)
|
| InAppSerializationManagerImpl$deserializeToShownInApps$1 |
100%
(1/1)
|
100%
(2/2)
|
100%
(4/4)
|
100%
(15/15)
|
| InAppSerializationManagerImpl$deserializeToShownInApps$1$1 |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(2/2)
|
| InAppSerializationManagerImpl$deserializeToShownInAppsMap$1 |
100%
(1/1)
|
50%
(1/2)
|
100%
(1/1)
|
70.6%
(12/17)
|
| InAppSerializationManagerImpl$deserializeToShownInAppsMap$1$invoke$$inlined$fromJsonTyped$1 |
0%
(0/1)
|
|
| InAppSerializationManagerImpl$serializeToInAppClickActionString$1 |
100%
(1/1)
|
|
100%
(4/4)
|
100%
(15/15)
|
| InAppSerializationManagerImpl$serializeToInAppClickActionString$1$invoke$$inlined$toJsonTyped$1 |
0%
(0/1)
|
|
| InAppSerializationManagerImpl$serializeToInAppShowFailuresString$1 |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(12/12)
|
| InAppSerializationManagerImpl$serializeToInAppShowFailuresString$1$invoke$$inlined$toJsonTyped$1 |
0%
(0/1)
|
|
| InAppSerializationManagerImpl$serializeToInAppShownActionString$1 |
100%
(1/1)
|
|
100%
(5/5)
|
100%
(17/17)
|
| InAppSerializationManagerImpl$serializeToInAppShownActionString$1$invoke$$inlined$toJsonTyped$1 |
0%
(0/1)
|
|
| InAppSerializationManagerImpl$serializeToInAppTargetingString$1 |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(14/14)
|
| InAppSerializationManagerImpl$serializeToInAppTargetingString$1$invoke$$inlined$toJsonTyped$1 |
0%
(0/1)
|
|
| InAppSerializationManagerImpl$serializeToShownInAppsString$1 |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(9/9)
|
| InAppSerializationManagerImpl$serializeToShownInAppsString$1$invoke$$inlined$toJsonTyped$1 |
0%
(0/1)
|
|
| Total |
72.7%
(16/22)
|
75%
(3/4)
|
100%
(26/26)
|
97.2%
(173/178)
|
package cloud.mindbox.mobile_sdk.inapp.data.managers
import cloud.mindbox.mobile_sdk.fromJsonTyped
import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.managers.InAppSerializationManager
import cloud.mindbox.mobile_sdk.inapp.domain.models.InAppFailuresWrapper
import cloud.mindbox.mobile_sdk.models.operation.request.InAppClickRequest
import cloud.mindbox.mobile_sdk.models.operation.request.InAppShowRequest
import cloud.mindbox.mobile_sdk.models.operation.request.InAppShowFailure
import cloud.mindbox.mobile_sdk.models.operation.request.InAppTargetingRequest
import cloud.mindbox.mobile_sdk.toJsonTyped
import cloud.mindbox.mobile_sdk.utils.LoggingExceptionHandler
import cloud.mindbox.mobile_sdk.utils.loggingRunCatching
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
internal class InAppSerializationManagerImpl(private val gson: Gson) : InAppSerializationManager {
override fun serializeToInAppShownActionString(
inAppId: String,
timeToDisplay: String,
tags: Map<String, String>?,
): String {
return loggingRunCatching("") {
gson.toJsonTyped<InAppShowRequest>(
InAppShowRequest(
inAppId = inAppId,
timeToDisplay = timeToDisplay,
tags = tags,
)
)
}
}
override fun serializeToInAppTargetingString(inAppId: String, tags: Map<String, String>?): String {
return loggingRunCatching(defaultValue = "") {
gson.toJsonTyped<InAppTargetingRequest>(InAppTargetingRequest(inAppId = inAppId, tags = tags))
}
}
override fun serializeToInAppClickActionString(inAppId: String, tags: Map<String, String>?): String {
return loggingRunCatching(defaultValue = "") {
gson.toJsonTyped<InAppClickRequest>(
InAppClickRequest(
inAppId = inAppId,
tags = tags,
)
)
}
}
override fun serializeToShownInAppsString(shownInApps: Map<String, List<Long>>): String {
return loggingRunCatching("") {
gson.toJsonTyped<Map<String, List<Long>>>(shownInApps)
}
}
override fun serializeToInAppShowFailuresString(
inAppShowFailures: List<InAppShowFailure>
): String {
return loggingRunCatching("") {
gson.toJsonTyped<InAppFailuresWrapper>(InAppFailuresWrapper(inAppShowFailures))
}
}
override fun deserializeToShownInAppsMap(shownInApps: String): Map<String, List<Long>> {
return loggingRunCatching(hashMapOf()) {
gson.fromJsonTyped<Map<String, List<Long>>>(shownInApps) ?: hashMapOf()
}
}
override fun deserializeToShownInApps(shownInApps: String): Set<String> {
return LoggingExceptionHandler.runCatching(HashSet()) {
gson.fromJson(
shownInApps,
object : TypeToken<HashSet<String>>() {}.type
) ?: emptySet()
}
}
}