package Ġtech . med ina . tv shows . data . tv shows Ċ Ċ import Ġandroidx . paging . Paging Source Ċ import Ġcom . google . common . truth . Truth Ċ import Ġio . mock k .* Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . junit . Test Ċ import Ġtech . med ina . tv shows . base . Base Test Ċ import Ġtech . med ina . tv shows . data . Tv M aze Service Ċ import Ġtech . med ina . tv shows . data . mapper . I Mapper Ċ import Ġtech . med ina . tv shows . domain . model . Show Ċ import Ġtech . med ina . tv shows . util . Fake DTO Ċ import Ġtech . med ina . tv shows . util . Fake Model Ċ Ċ @ Experimental Cor outines Api Ċ class ĠT v Shows Repository Test : ĠBaseTest () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġtv M aze Service Ġ= Ġmock k < Tv M aze Service > Ġ{ ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġget Shows ( any ()) Ġ} Ġreturns ĠlistOf ( Fake DTO . show Info , ĠFake DTO . show Full ) ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġget Show Detail ( any ()) Ġ} Ġreturns ĠFake DTO . show Full ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġshow Mapper Ġ= Ġmock k < I Mapper < Show DTO , ĠShow >> Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmap ( any ()) Ġ} Ġreturns ĠFake Model . show Full ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtv Shows DataSource Ġ= Ġmock k < Tv Shows DataSource > Ġ{ ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġload ( any ()) Ġ} Ġreturns ĠP aging Source . Load Result . Page ( Fake DTO . show List , Ġnull , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġshow Ġdetail Ġsuccessfully `() Ġ= Ġdispatcher . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠT v Shows Repository ( tv Shows DataSource , Ġtv M aze Service , Ġshow Mapper ) ĊĠĠĠĠĠĠĠ Ġval Ġshow Detail Ġ= Ġrepository . get Tv Show Detail ( 1 2 3 ) ĊĠĠĠĠĠĠĠ Ġco Verify Sequence Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv M aze Service . get Show Detail ( any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Mapper . map ( any ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith ( show Detail ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( this ). isNotNull () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( this ). isEqualTo ( Fake Model . show Full ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġshow Ġdetail Ġwith Ġexception `() Ġ= Ġdispatcher . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠT v Shows Repository ( tv Shows DataSource , Ġtv M aze Service , Ġshow Mapper ) ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġrepository . get Tv Show Detail ( any ()) Ġ} Ġthrows ĠException () ĊĠĠĠĠĠĠĠ Ġval Ġshow Detail Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . get Tv Show Detail ( 1 2 3 ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġco Verify Sequence Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv M aze Service . get Show Detail ( any ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġco Verify Ġ( exact ly Ġ= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Mapper . map ( any ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith ( show Detail ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( this ). isNotNull () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( this Ġis ĠException ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }