package Ġorg . mt g . repository Ċ Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . do Return Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġio . reactivex . subjects . Comp letable Subject Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ import Ġorg . mt g . api . Match Result Api Ċ import Ġorg . mt g . model . Match Result Ċ import Ġjava . io . IOException Ċ Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠMatch Remote Repository Test Ġ{ ĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠERROR Ġ= ĠIOException () ĊĠĠĠĠĠĠĠ Ġval ĠMATCH _ RESULT Ġ= ĠMatch Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwinner Id Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlo ser Id Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgames Count Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġreport Subject Ġ= ĠComp letable Subject . create () ĊĠĠĠ Ġprivate Ġval Ġapi Ġ= Ġmock < Match Result Api > Ġ{ ĊĠĠĠĠĠĠĠ Ġon Ġ{ Ġreport Match ( MATCH _ RESULT ) Ġ} Ġdo Return Ġreport Subject ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġrepo Ġ= ĠMatch Remote Repository ( api ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġreport Match _ error () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobserver Ġ= Ġrepo . report Match ( MATCH _ RESULT ). test () ĊĠĠĠĠĠĠĠ Ġrespond With Report Error () ĊĠĠĠĠĠĠĠ Ġobserver . assert Value ( Match Remote Repository . Result . Error ( ERROR )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġreport Match _ success () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobserver Ġ= Ġrepo . report Match ( MATCH _ RESULT ). test () ĊĠĠĠĠĠĠĠ Ġrespond With Report Success () ĊĠĠĠĠĠĠĠ Ġobserver . assert Value ( Match Remote Repository . Result . Success ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrespond With Report Error () Ġ= Ġreport Subject . onError ( ERROR ) ĊĊĠĠĠ Ġprivate Ġfun Ġrespond With Report Success () Ġ= Ġreport Subject . onComplete () Ċ } Ċ