package Ġcom . example . post challenge Ċ Ċ import Ġcom . example . post challenge . data . Post Repository Ċ import Ġcom . example . post challenge . data . model . Post Ċ import Ġcom . example . post challenge . service . Post Service Ċ import Ġcom . example . post challenge . ui . post list . Post List Contract . View Ċ import Ġcom . example . post challenge . ui . post list . Post List Presenter Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . spy k Ċ import Ġio . mock k . verify Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġio . reactivex . subjects . Publish Subject Ċ import Ġorg . junit . Test Ċ Ċ class ĠPost List Presenter Test Ġ{ ĊĊĠ Ġprivate Ġval Ġpublisher Tap To Retry Ġ= ĠPublish Subject . create < Any >() ĊĠ Ġprivate Ġval Ġpublisher Post ItemSelected Ġ= ĠPublish Subject . create < Post >() ĊĊĠ Ġprivate Ġval Ġview : ĠView Ġ= Ġmock k ( relax Unit Fun Ġ= Ġtrue ) Ġ{ ĊĠĠĠ Ġevery Ġ{ Ġtap To Retry () Ġ} Ġreturns Ġpublisher Tap To Retry ĊĠĠĠ Ġevery Ġ{ Ġpost ItemSelected () Ġ} Ġreturns Ġpublisher Post ItemSelected ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġpost Service : ĠPost Service Ġ= Ġmock k ( relax ed Ġ= Ġtrue ) ĊĊĠ Ġprivate Ġval Ġrepository : ĠPost Repository Ġ= Ġmock k ( relax ed Ġ= Ġtrue ) ĊĊĠ Ġprivate Ġval Ġpresenter : ĠPost List Presenter Ġ= Ġspy k ( ĊĠĠĠ ĠPost List Presenter ( ĊĠĠĠĠĠ Ġview Ġ= Ġview , ĊĠĠĠĠĠ Ġnavigator Ġ= Ġmock k (), ĊĠĠĠĠĠ Ġpost Service Ġ= Ġpost Service , ĊĠĠĠĠĠ Ġrepository Ġ= Ġrepository ĊĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠ Ġview Scheduler Ġ= ĠS chedulers . tr amp oline () ĊĠĠĠ Ġ} ĊĠ Ġ) ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` presenter Ġresume `() Ġ{ ĊĠĠĠ Ġ// Ġit Ġshould Ġcall Ġall Ġhandler ĊĠĠĠ Ġpresenter . resume () ĊĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġpresenter . handle Post Selected () Ġ} ĊĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġpresenter . handle Tap To Retry () Ġ} ĊĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġpresenter . handle Get Post List () Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` internet ĠOFF Ġand Ġgo Ġget Ġfrom Ġroom `() Ġ{ ĊĠĠĠ Ġ// Ġinternet ĠOFF ĊĠĠĠ Ġevery Ġ{ Ġview . is Internet On () Ġ} Ġreturns Ġfalse ĊĊĠĠĠ Ġpresenter . handle Get Post List () ĊĊĠĠĠ Ġloading () ĊĊĠĠĠ Ġ// Ġit Ġshould Ġget Ġinfo Ġfrom Ġroom ĊĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġrepository . getAll Posts () Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` internet ĠON Ġand Ġgo Ġget Ġthrough Ġhttp Ġrequest `() Ġ{ ĊĠĠĠ Ġ// Ġinternet ĠON ĊĠĠĠ Ġevery Ġ{ Ġview . is Internet On () Ġ} Ġreturns Ġtrue ĊĊĠĠĠ Ġpresenter . handle Get Post List () ĊĊĠĠĠ Ġloading () ĊĊĠĠĠ Ġ// Ġit Ġshould Ġget Ġinfo Ġfrom Ġroom ĊĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġpost Service . getPost List () Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġloading () Ġ{ ĊĠĠĠ Ġ// Ġit Ġshould Ġhide Ġview ĊĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġview . hide Parent () Ġ} ĊĠĠĠ Ġ// Ġit Ġshould Ġshow Ġprogress Ġbar ĊĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġview . show ProgressBar () Ġ} ĊĠ Ġ} Ċ Ċ }