Coverage Summary for Class: NetworkResponseKt (com.codandotv.streamplayerapp.core_networking.handleError)

Class Method, % Branch, % Line, % Instruction, %
NetworkResponseKt 50% (1/2) 25% (1/4) 28.6% (2/7) 25.7% (9/35)
NetworkResponseKt$toFlow$1 100% (1/1) 33.3% (2/6) 60% (3/5) 55.3% (26/47)
Total 66.7% (2/3) 30% (3/10) 41.7% (5/12) 42.7% (35/82)


 package com.codandotv.streamplayerapp.core_networking.handleError
 
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.flow
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.Transient
 
 @Serializable
 sealed class NetworkResponse<out T> {
     @Serializable
     data class Success<out T>(
         val value: T
     ) : NetworkResponse<T>()
 
     @Serializable
     data class Error(
         val body: String? = null,
         @Transient
         val exception: Failure? = null
     ) : NetworkResponse<Nothing>()
 }
 
 fun <T> NetworkResponse<T>.toResult(): Result<T> =
     when (this) {
         is NetworkResponse.Success -> {
             Result.success(this.value)
         }
         is NetworkResponse.Error -> {
             Result.failure(this.exception ?: Failure.GenericError())
         }
     }
 
 fun <T> NetworkResponse<T>.toFlow(): Flow<T> {
     val networkResponse = this
     return flow {
         when (networkResponse) {
             is NetworkResponse.Success -> {
                 emit(networkResponse.value)
             }
             is NetworkResponse.Error -> {
                 throw networkResponse.exception ?: Failure.GenericError()
             }
         }
     }
 }