package Ġpl . d roid con . app . speak ers . inter actor Ċ Ċ import Ġcom . n ha ar man . mockito _ kotlin .* Ċ import Ġio . reactivex . Observable Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ import Ġpl . d roid con . app . data . On Remote Success Ċ import Ġpl . d roid con . app . data . mapper . Speaker Mapper Ċ import Ġpl . d roid con . app . data . network . Speaker Remote Ċ import Ġpl . d roid con . app . data . network . S peak ers Service Ċ import Ġpl . d roid con . app . domain . Speaker Ċ import Ġjava . io . IOException Ċ Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠRemote S peak ers Source Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġspeak ers Service : ĠS peak ers Service Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval Ġsuccess : ĠOn Remote Success < List < Speaker >> Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval Ġspeaker Mapper Ġ= ĠS peaker Mapper () ĊĊĠĠĠ Ġprivate Ġval Ġsystem UnderTest Ġ= ĠRemote S peak ers Source ( speak ers Service , Ġspeaker Mapper ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` calls Ġsuccess Ġwhen Ġloaded Ġfrom Ġremote `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġspeaker Ġ= ĠS peaker Remote ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfirstName Ġ= Ġ" name ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Ġ= Ġ" last ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" title ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" desc ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebsite Url Ġ= Ġ" web ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfacebook Url Ġ= Ġ" fac ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtwitter Url Ġ= Ġ" tw ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgithub Url Ġ= Ġ" gh ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlinked in Url Ġ= Ġ" in ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Plus Url Ġ= Ġ" gp ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠimageUrl Ġ= Ġ" image " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠlistOf ( speaker ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġspeaker Mapper . map ( speaker ) ĊĠĠĠĠĠĠĠ Ġwhenever ( speak ers Service . speak ers ()). thenReturn ( Observable . just ( response )) ĊĊĠĠĠĠĠĠĠ Ġsystem UnderTest . get ( success ). test () ĊĊĠĠĠĠĠĠĠ Ġverify ( success ). invoke ( listOf ( expected )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` returns Ġremote Ġwhen Ġsubscribed `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġspeaker Ġ= ĠS peaker Remote ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfirstName Ġ= Ġ" name ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Ġ= Ġ" last ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" title ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" desc ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebsite Url Ġ= Ġ" web ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfacebook Url Ġ= Ġ" fac ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtwitter Url Ġ= Ġ" tw ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgithub Url Ġ= Ġ" gh ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlinked in Url Ġ= Ġ" in ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Plus Url Ġ= Ġ" gp ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠimageUrl Ġ= Ġ" image " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠlistOf ( speaker ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġspeaker Mapper . map ( speaker ) ĊĠĠĠĠĠĠĠ Ġwhenever ( speak ers Service . speak ers ()). thenReturn ( Observable . just ( response )) ĊĊĠĠĠĠĠĠĠ Ġsystem UnderTest . get ( success ). test () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Value ( listOf ( expected )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` does Ġnot Ġcall Ġsuccess Ġwhen Ġloaded Ġempty `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( speak ers Service . speak ers ()). thenReturn ( Observable . just ( emptyList ())) ĊĊĠĠĠĠĠĠĠ Ġsystem UnderTest . get ( success ). test () ĊĊĠĠĠĠĠĠĠ Ġverify ( success , Ġtimes ( 0 )). invoke ( any ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` returns Ġerror Ġif Ġerror `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠIOException () ĊĠĠĠĠĠĠĠ Ġwhenever ( speak ers Service . speak ers ()). thenReturn ( Observable . error ( error )) ĊĊĠĠĠĠĠĠĠ Ġsystem UnderTest . get ( success ). test () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Error ( error ) ĊĠĠĠ Ġ} Ċ }