package Ġorg . co def or v ictory . android . recipes . data . api . recipe Ċ Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . am sh ove . k lu ent . shouldBe EqualTo Ċ import Ġorg . co def or v ictory . android . recipes . data . api . recipe . model . Api Me al Ċ import Ġorg . co def or v ictory . android . recipes . data . api . recipe . model . Api Me als Response Ċ import Ġorg . co def or v ictory . recipes . domain . common . model . meal . Me al Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . io . IOException Ċ Ċ internal Ġclass ĠRecipe Api Source Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġadapt To Me al : ĠAdapt To Me al Ġ= Ġmock k () ĊĠĠĠ Ġprivate Ġval Ġrecipe Service : ĠRecipe Service Ġ= Ġmock k () ĊĠĠĠ Ġprivate Ġval Ġrecipe Api Source Ġ= ĠRecipe Api Source ( adapt To Me al , Ġrecipe Service ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` all Ġ- Ġshould Ġreturn Ġa Ġlist Ġof Ġme als Ġwhen Ġrequest Ġis Ġsuccessful `() Ġ= Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġapi Me als Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Me al (" id - 1 ", Ġ" name - 1 ", Ġ" image - 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Me al (" id - 2 ", Ġ" name - 2 ", Ġ" image - 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Me al (" id - 3 ", Ġ" name - 3 ", Ġ" image - 3 "), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Me als Ġ= Ġapi Me als . map Ġ{ Ġapi Me al Ġ-> ĠMe al ( api Me al . id , Ġapi Me al . name , Ġapi Me al . image Thumbnail Url ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġapi Me als . forEach Indexed Ġ{ Ġindex , Ġapi Me al Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġadapt To Me al ( api Me al ) Ġ} Ġreturns Ġexpected Me als [ index ] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġrecipe Service . recipes By () Ġ} Ġreturns ĠApi Me als Response ( me als Ġ= Ġapi Me als ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrecipe Api Source . all () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġresult ĠshouldBe EqualTo ĠResult . success ( expected Me als ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` all Ġ- Ġshould Ġreturn Ġerror Ġwhen Ġrequest Ġis Ġun successful `() Ġ= Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġexpected Exception Ġ= ĠIOException () ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġrecipe Service . recipes By () Ġ} Ġthrows Ġexpected Exception ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrecipe Api Source . all () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġresult ĠshouldBe EqualTo ĠResult . failure ( expected Exception ) ĊĠĠĠ Ġ} Ċ } Ċ