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?>?
         )
     }
 }