package Ġcom . tri an . module . data Ċ Ċ import Ġcom . tri an . data . remote . device . Device ApiService Ċ import Ġcom . tri an . data . remote . device . Device Remote DataSource Ċ import Ġcom . tri an . domain . repository . Base Response Ċ import Ġcom . tri an . domain . entities . User Ċ import Ġjunit . framework . Assert . assertEquals Ċ import Ġjunit . framework . Assert . assertNot Same Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . mock webserver . Mock WebServer Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Test Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . util . concurrent . TimeUnit ĊĊĊĊ Ċ class ĠDevice Remote DataSource Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmock WebServer Ġ= ĠMock WebServer () ĊĊĠĠĠ Ġprivate Ġval Ġclient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠ Ġ. connect Timeout ( 1 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ. read Timeout ( 1 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ. write Timeout ( 1 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġprivate Ġval Ġapi Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. baseUrl ( mock WebServer . url ("/ ")) ĊĠĠĠĠĠĠĠ Ġ. client ( client ) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ. create ( Device ApiService :: class . java ) ĊĊĊĊĠĠĠ Ġprivate Ġval Ġsut Ġ= ĠDevice Remote DataSource ( api ) ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġmock WebServer . shutdown () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġsuccess Ġlogin Ġuser `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock WebServer . enqueue Response (" response - login - 2 0 0 . json ", Ġ 2 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġsut ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠBase Response < List < User >>( true , ĠlistOf < User >(), " Ber hasil ĠLogin ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġactual ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġsuccess Ġlogin Ġnur se `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock WebServer . enqueue Response (" response - login - 2 0 0 . json ", Ġ 2 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġsut . get Temp Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠBase Response < List < User >>( true , ĠlistOf < User >(), " Ber hasil ĠLogin ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġactual ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġfailed Ġrequest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock WebServer . enqueue Response (" response - failed . json ", Ġ 2 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġsut . get Temp Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠBase Response < List < User >>( true , ĠlistOf < User >(), " Ber hasil ĠLogin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Not Same ( expected , Ġactual ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }