Coverage Summary for Class: PayloadDto (cloud.mindbox.mobile_sdk.inapp.data.dto)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| PayloadDto |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(2/2)
|
| PayloadDto$ModalWindowDto |
100%
(3/3)
|
|
100%
(5/5)
|
100%
(13/13)
|
| PayloadDto$ModalWindowDto$Companion |
|
| PayloadDto$ModalWindowDto$ContentDto |
100%
(3/3)
|
|
100%
(5/5)
|
100%
(12/12)
|
| PayloadDto$SnackbarDto |
100%
(3/3)
|
|
100%
(5/5)
|
100%
(13/13)
|
| PayloadDto$SnackbarDto$Companion |
|
| PayloadDto$SnackbarDto$ContentDto |
100%
(4/4)
|
|
100%
(7/7)
|
100%
(20/20)
|
| PayloadDto$SnackbarDto$ContentDto$PositionDto |
100%
(3/3)
|
|
100%
(5/5)
|
100%
(12/12)
|
| PayloadDto$SnackbarDto$ContentDto$PositionDto$GravityDto |
33.3%
(1/3)
|
|
60%
(3/5)
|
66.7%
(8/12)
|
| PayloadDto$SnackbarDto$ContentDto$PositionDto$MarginDto |
42.9%
(3/7)
|
62.5%
(5/8)
|
75%
(12/16)
|
80.7%
(46/57)
|
| Total |
77.8%
(21/27)
|
62.5%
(5/8)
|
87.8%
(43/49)
|
89.4%
(126/141)
|
package cloud.mindbox.mobile_sdk.inapp.data.dto
import cloud.mindbox.mobile_sdk.isInRange
import com.google.gson.annotations.SerializedName
/**
* In-app types
**/
internal sealed class PayloadDto {
data class SnackbarDto(
@SerializedName("content")
val content: ContentDto?,
@SerializedName("${"$"}type")
val type: String?
) : PayloadDto() {
internal data class ContentDto(
@SerializedName("background")
val background: BackgroundDto?,
@SerializedName("elements")
var elements: List<ElementDto?>?,
@SerializedName("position")
val position: PositionDto
) {
internal data class PositionDto(
@SerializedName("gravity")
val gravity: GravityDto?,
@SerializedName("margin")
val margin: MarginDto
) {
internal data class MarginDto(
@SerializedName("bottom")
val bottom: Double?,
@SerializedName("kind")
val kind: String?,
@SerializedName("left")
val left: Double?,
@SerializedName("right")
var right: Double?,
@SerializedName("top")
val top: Double?
) {
fun isValidPosition(): Boolean = kind != null &&
bottom.isInRange(0.0, Double.MAX_VALUE) &&
top.isInRange(0.0, Double.MAX_VALUE) &&
left.isInRange(0.0, Double.MAX_VALUE) &&
right.isInRange(0.0, Double.MAX_VALUE)
}
internal data class GravityDto(
@SerializedName("horizontal")
val horizontal: String?,
@SerializedName("vertical")
val vertical: String?
)
}
}
internal companion object {
const val SNACKBAR_JSON_NAME = "snackbar"
}
}
data class ModalWindowDto(
@SerializedName("content")
val content: ContentDto?,
@SerializedName("${"$"}type")
val type: String?
) : PayloadDto() {
internal companion object {
const val MODAL_JSON_NAME = "modal"
}
internal data class ContentDto(
@SerializedName("background")
val background: BackgroundDto?,
@SerializedName("elements")
val elements: List<ElementDto?>?
)
}
}