package Ġco . om ise go . om ise go . custom . ret rofit 2 . adapter Ċ Ċ /* Ċ Ġ* ĠOm ise GO Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠCreated Ġby ĠPh uch it ĠSi ri mong k ols ath ien Ġon Ġ 1 4 / 3 / 2 0 1 8 ĠAD . Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 1 7 - 2 0 1 8 ĠOm ise GO . ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ Ċ import Ġco . om ise go . om ise go . constant . Versions Ċ import Ġco . om ise go . om ise go . constant . enums . ErrorCode Ċ import Ġco . om ise go . om ise go . custom . OM G Callback Ċ import Ġco . om ise go . om ise go . exception . OM G API ErrorException Ċ import Ġco . om ise go . om ise go . helpers . deleg ation . Gson Deleg ator Ċ import Ġco . om ise go . om ise go . helpers . deleg ation . Resource File Ċ import Ġco . om ise go . om ise go . model . API Error Ċ import Ġco . om ise go . om ise go . model . OM G Response Ċ import Ġco . om ise go . om ise go . model . User Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġcom . n ha ar man . mockito _ kotlin . times Ċ import Ġcom . n ha ar man . mockito _ kotlin . verify Ċ import Ġcom . n ha ar man . mockito _ kotlin . verify No More Interactions Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . ResponseBody Ċ import Ġorg . am sh ove . k lu ent . mock Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . mockito . junit . Mockito JUnit Runner Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Response Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ import Ġjava . util . concurrent . Executor Ċ Ċ @ RunWith ( Mockito JUnit Runner :: class ) Ċ class ĠO MG Callback Wrapper Test Ġ: ĠGson Deleg ator () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġuser File : ĠFile Ġby ĠResource File (" user . json ") ĊĠĠĠ Ġprivate Ġval Ġerror File : ĠFile Ġby ĠResource File (" error - invalid _ auth . json ") ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsample User : ĠUser ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsample Error : ĠAPI Error ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuser Result : ĠResponse < OM G Response < User >> ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock Call : ĠCall < OM G Response < User >> ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock OM G Callback : ĠO MG Callback < User > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcallback : ĠO MG Callback Wrapper < User > ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġmock Call Ġ= Ġmock () ĊĠĠĠĠĠĠĠ Ġmock OM G Callback Ġ= Ġmock () ĊĠĠĠĠĠĠĠ Ġval Ġexecutor Ġ= ĠExecutor Ġ{ Ġit . run () Ġ} ĊĠĠĠĠĠĠĠ Ġcallback Ġ= ĠO MG Callback Wrapper ( mock OM G Callback , Ġexecutor ) ĊĠĠĠĠĠĠĠ Ġsample User Ġ= Ġgson . fromJson < OM G Response < User >>( user File . read Text (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠType Token < OM G Response < User >>() Ġ{} . type ). data ĊĠĠĠĠĠĠĠ Ġsample Error Ġ= Ġgson . fromJson < OM G Response < API Error >>( error File . read Text (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠType Token < OM G Response < API Error >>() Ġ{} . type ). data ĊĠĠĠĠĠĠĠ Ġuser Result Ġ= ĠResponse . success ( OM G Response ( Versions . E WAL LET _ API , Ġtrue , Ġsample User )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` OM G Callback Wrapper Ġdeleg ates ĠO MG API ErrorException Ġto Ġthe Ġfailed Ġcallback Ġsuccessfully `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Error Ġ= ĠO MG Response ( Versions . E WAL LET _ API , Ġfalse , Ġsample Error ) ĊĠĠĠĠĠĠĠ Ġval Ġthrowable Ġ= ĠO MG API ErrorException ( expected Error ) ĊĊĠĠĠĠĠĠĠ Ġcallback . on Failure ( mock Call , Ġthrowable ) ĊĊĠĠĠĠĠĠĠ Ġverify ( mock OM G Callback , Ġtimes ( 1 )). fail ( expected Error ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock OM G Callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` OM G Callback Wrapper Ġdeleg ates Ġnetwork Ġerror Ġto Ġthe Ġfailed Ġcallback Ġsuccessfully `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġerror Msg Ġ= Ġ" Request Ġtimeout ." ĊĠĠĠĠĠĠĠ Ġval Ġthrowable Ġ= ĠIOException ( error Msg ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Error Ġ= ĠO MG Response ( Versions . E WAL LET _ API , Ġfalse , ĠAPI Error ( ErrorCode . SDK _ NETWORK _ ERROR , Ġerror Msg )) ĊĊĠĠĠĠĠĠĠ Ġcallback . on Failure ( mock Call , Ġthrowable ) ĊĊĠĠĠĠĠĠĠ Ġverify ( mock OM G Callback , Ġtimes ( 1 )). fail ( expected Error ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock OM G Callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` OM G Callback Wrapper Ġdeleg ates Ġthe Ġsuccessful Ġresponse Ġto Ġthe Ġsuccess Ġcallback Ġsuccessfully `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected User Ġ= ĠO MG Response ( Versions . E WAL LET _ API , Ġtrue , Ġsample User ) ĊĊĠĠĠĠĠĠĠ Ġcallback . on Response ( mock Call , Ġuser Result ) ĊĊĠĠĠĠĠĠĠ Ġverify ( mock OM G Callback , Ġtimes ( 1 )). success ( expected User ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock OM G Callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` OM G Callback Wrapper Ġdeleg ates Ġthe Ġserver Ġ 5 0 0 Ġerror Ġto Ġthe Ġfailed Ġcallback Ġsuccessfully `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġerror Response Ġ= ĠResponse . error < OM G Response < User >>( 5 0 0 , Ġmock ( ResponseBody :: class )) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Response Ġ= ĠO MG Response ( Versions . E WAL LET _ API , Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAPI Error ( ErrorCode . SERVER _ INTERNAL _ SERVER _ ERROR , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" The ĠE Wallet ĠAPI Ġwas Ġ 5 0 0 ĠInternal ĠServer ĠError ")) ĊĊĠĠĠĠĠĠĠ Ġcallback . on Response ( mock Call , Ġerror Response ) ĊĊĠĠĠĠĠĠĠ Ġverify ( mock OM G Callback , Ġtimes ( 1 )). fail ( expected Response ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock OM G Callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` OM G Callback Wrapper Ġdeleg ates Ġthe Ġunexpected Ġerror Ġto Ġthe Ġfailed Ġcallback Ġsuccessfully `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse : ĠResponse < OM G Response < User >> Ġ= ĠResponse . success ( null ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Response Ġ= ĠO MG Response ( Versions . E WAL LET _ API , Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAPI Error ( ErrorCode . SDK _ UN EXPECTED _ ERROR , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Unexpected ĠError ")) ĊĊĠĠĠĠĠĠĠ Ġcallback . on Response ( mock Call , Ġresponse ) ĊĊĠĠĠĠĠĠĠ Ġverify ( mock OM G Callback , Ġtimes ( 1 )). fail ( expected Response ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock OM G Callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` OM G Callback Wrapper Ġdeleg ates Ġthe Ġserver Ġunknown Ġerror Ġto Ġthe Ġfailed Ġcallback Ġsuccessfully `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠMediaType . parse (" application / json ") ĊĠĠĠĠĠĠĠ Ġval Ġresponse Text Ġ= Ġ" A Ġbug Ġis Ġnever Ġjust Ġa Ġmistake . ĠIt Ġrepresents Ġsomething Ġbigger ." ĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= ĠResponse Body . create ( json , Ġresponse Text ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse : ĠResponse < OM G Response < User >> Ġ= ĠResponse . error ( 4 0 0 , Ġbody ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Response Ġ= ĠO MG Response ( Versions . E WAL LET _ API , Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAPI Error ( ErrorCode . SERVER _ UNKNOWN _ ERROR , Ġresponse Text )) ĊĊĠĠĠĠĠĠĠ Ġcallback . on Response ( mock Call , Ġresponse ) ĊĊĠĠĠĠĠĠĠ Ġverify ( mock OM G Callback , Ġtimes ( 1 )). fail ( expected Response ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock OM G Callback ) ĊĠĠĠ Ġ} Ċ } Ċ