package Ġcom . w ass im . show case . feature albums . list . use case Ċ Ċ import Ġcom . w ass im . show case . core . data . remote . ApiService Ċ import Ġcom . w ass im . show case . core . utils . stub Search Response Ċ import Ġcom . w ass im . show case . feature albums . view . list . use case . Get Album s UseCase Ċ import Ġcom . w ass im . show case . feature albums . view . list . use case . Get Album s UseCase Impl Ċ import Ġcom . w ass im . show case . test shared . Main Coroutine Rule Ċ import Ġcom . w ass im . show case . utils . Result Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . mock k Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ Ċ class ĠGet Album s UseCase Test Ġ{ ĊĊĠĠĠ Ġ@ Experimental Cor outines Api ĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġvar Ġcor outines Test Rule Ġ= ĠMain Coroutine Rule () ĊĊĠĠĠ Ġlateinit Ġvar Ġget Album s UseCase : ĠGet Album s UseCase ĊĊĠĠĠ Ġprivate Ġval Ġapi Service : ĠApi Service Ġ= Ġmock k () ĊĠĠĠ Ġprivate Ġval Ġmocked Success Response Ġ= Ġstub Search Response () ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġget Album s UseCase Ġ= ĠGet Album s UseCase Impl ( api Service ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` search Ġalbum s Ġreturns Ġsuccess `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġmock ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġapi Service . search Album ( any (), Ġany ()) Ġ} Ġreturns Ġmocked Success Response ĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġget Album s UseCase () ĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ Ġassert ( result Ġis ĠResult . Success ) ĊĠĠĠĠĠĠĠ Ġresult Ġas ĠResult . Success ĊĠĠĠĠĠĠĠ Ġassert ( result . data . size Ġ== Ġ 1 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` search Ġalbum s Ġreturns Ġerror `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġmock ĊĠĠĠĠĠĠĠ Ġval ĠerrorMessage Ġ= Ġ" server Ġside Ġerror " ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġapi Service . search Album ( any (), Ġany ()) Ġ} Ġthrows ĠException ( errorMessage ) ĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġget Album s UseCase () ĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ Ġassert ( result Ġis ĠResult . Error ) ĊĠĠĠĠĠĠĠ Ġresult Ġas ĠResult . Error ĊĠĠĠĠĠĠĠ Ġassert ( result . exception . message Ġ== ĠerrorMessage ) ĊĠĠĠ Ġ} Ċ } Ċ