Kotlin Coroutines Unit Testing

Im trying to test this suspend function:

suspend fun <T> getResult(call: suspend () -> Response<T>): Resource<T> {

  val response = call()
  val body = response.body()
  val code = response.code()

  if (response.isSuccessful) {

    Log.d(Cybrid.instance.tag, "Data: ${response.code()} - ${response.body()}")
    return Resource.success(body!!, code)

  } else if (response.code() == HTTP_UNAUTHORIZED || response.code() == HTTP_FORBIDDEN) {

    Cybrid.instance.let { cybrid ->
      cybrid.listener.let {
        cybrid.invalidToken = true
        it?.onTokenExpired()
      }
    }
    Log.e(Cybrid.instance.tag, "Error - Something wrong with TOKEN : ${response.code()} ${response.message()}")
    return Resource.error(response.message(), code=response.code())
  } else {
    Log.e(Cybrid.instance.tag, "Error - Other: ${response.code()} ${response.message()} :: ${response.raw()}")
    return Resource.error(message = response.message(), data= response.body(), code= response.code())
  }
}

With this Unit Test Case, all it cover except line 13 , I dont know how to cover the line!!!

@ExperimentalCoroutinesApi
@Test
fun get400ErrorServerTest() = runBlocking {

    Cybrid.instance.setBearer("Bearer")
    val pricesService = AppModule.getClient().createService(PricesApi::class.java)
    val result = getResult { pricesService.listPrices() }

    Assert.assertNotNull(result)
    Assert.assertEquals(result.code, 400)
    Assert.assertNull(result.data)
}

The coverage report says:

Coverage

Some idea to get coverage for line 13 ??? Thnanks

How many English words
do you know?
Test your English vocabulary size, and measure
how many words do you know
Online Test
Powered by Examplum