package Ġcom . pan agi ac . demo . data Ċ Ċ import Ġcom . pan agi ac . demo . data . map pers . Forecast Mapper Ċ import Ġcom . pan agi ac . demo . data . map pers . Hour Mapper Ċ import Ġcom . pan agi ac . demo . data . map pers . Weather Mapper Ċ import Ġcom . pan agi ac . demo . data . network . service . Mock Api Ċ import Ġcom . pan agi ac . demo . data . network . service . Open Weather Api Ċ import Ġcom . pan agi ac . demo . data . repository . Api Repository Impl Ċ import Ġcom . pan agi ac . demo . domain . Data State Ċ import Ġcom . pan agi ac . demo . domain . repository . Api Repository Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠRepository Test Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠC ITY Ġ= Ġ" L ondon " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrepository : ĠApi Repository ĊĠĠĠ Ġprivate Ġval Ġmock Api : ĠOpen Weather Api Ġ= ĠMock Api () ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġprepare () Ġ{ ĊĠĠĠĠĠĠĠ Ġrepository Ġ= ĠApi Repository Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Service Ġ= Ġmock Api , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweather Mapper Ġ= ĠWeather Mapper (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforecast Mapper Ġ= ĠFore cast Mapper ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHour Mapper () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġassert _ is Forecast NotEmpty () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsize Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġrepository . get Forecast (" q ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( res Ġis ĠData State . Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= Ġres . data . list . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġassert ( size Ġ> Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġassert _ weather City Name Equals L ondon () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcity Name Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġrepository . get Weather (" q ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( res Ġis ĠData State . Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Name Ġ= Ġres . data . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġassert ( city Name Ġ== ĠC ITY ) ĊĠĠĠ Ġ} Ċ }