/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠPaul ĠR y bits ky i , Ġpa ul . ry bits ky i . work @ gmail . com Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . paul ry bits ky i . game d ge . ig db . api Ċ Ċ import Ġcom . github . m ichael bull . result . Err Ċ import Ġcom . github . m ichael bull . result . Ok Ċ import Ġcom . github . m ichael bull . result . get Ċ import Ġcom . github . m ichael bull . result . getError Ċ import Ġcom . paul ry bits ky i . game d ge . commons . api . Error Mapper Ċ import Ġcom . paul ry bits ky i . game d ge . commons . testing . API _ ERROR _ HTTP Ċ import Ġcom . paul ry bits ky i . game d ge . commons . testing . API _ ERROR _ NETWORK Ċ import Ġcom . paul ry bits ky i . game d ge . commons . testing . API _ ERROR _ UNKNOWN Ċ import Ġcom . paul ry bits ky i . game d ge . ig db . api . auth . Api Oauth Credentials Ċ import Ġcom . paul ry bits ky i . game d ge . ig db . api . auth . Auth Endpoint Ċ import Ġcom . paul ry bits ky i . game d ge . ig db . api . auth . data stores . Auth I gdb DataStore Ċ import Ġcom . paul ry bits ky i . game d ge . ig db . api . auth . data stores . Auth Mapper Ċ import Ġio . mock k . Mock K Annotations Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ private Ġval ĠAPI _ O AUTH _ CRED ENTIAL S Ġ= ĠApi Oauth Credentials ( ĊĠĠĠ ĠaccessToken Ġ= Ġ" access _ token ", ĊĠĠĠ Ġtoken Type Ġ= Ġ" token _ type ", ĊĠĠĠ Ġtoken T tl Ġ= Ġ 5 0 0 L Ċ ) Ċ Ċ internal Ġclass ĠAuth I gdb DataStore Test Ġ{ ĊĊĠĠĠ Ġ@ Mock K Ġprivate Ġlateinit Ġvar Ġauth Endpoint : ĠAuth Endpoint ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġauth Mapper : ĠAuth Mapper ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġerror Mapper : ĠError Mapper ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠS UT : ĠAuth I gdb DataStore ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ ĠMock K Annotations . init ( this ) ĊĊĠĠĠĠĠĠĠ Ġauth Mapper Ġ= ĠAuth Mapper () ĊĠĠĠĠĠĠĠ Ġerror Mapper Ġ= ĠError Mapper () ĊĠĠĠĠĠĠĠ ĠS UT Ġ= ĠAuth I gdb DataStore ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauth Endpoint Ġ= Ġauth Endpoint , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauth Mapper Ġ= Ġauth Mapper , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Mapper Ġ= Ġerror Mapper ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġoauth Ġcredentials Ġsuccessfully `() Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġauth Endpoint . get Oauth Credentials () Ġ} Ġreturns ĠOk ( API _ O AUTH _ CRED ENTIAL S ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠS UT . get Oauth Credentials () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( auth Mapper . map To Data Oauth Credentials ( API _ O AUTH _ CRED ENTIAL S )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġhttp Ġerror Ġsuccessfully `() Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġauth Endpoint . get Oauth Credentials () Ġ} Ġreturns ĠErr ( API _ ERROR _ HTTP ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠS UT . get Oauth Credentials () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result . getError ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( error Mapper . map To Data Error ( API _ ERROR _ HTTP )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġnetwork Ġerror Ġsuccessfully `() Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġauth Endpoint . get Oauth Credentials () Ġ} Ġreturns ĠErr ( API _ ERROR _ NETWORK ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠS UT . get Oauth Credentials () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result . getError ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( error Mapper . map To Data Error ( API _ ERROR _ NETWORK )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġunknown Ġerror Ġsuccessfully `() Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġauth Endpoint . get Oauth Credentials () Ġ} Ġreturns ĠErr ( API _ ERROR _ UNKNOWN ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠS UT . get Oauth Credentials () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result . getError ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( error Mapper . map To Data Error ( API _ ERROR _ UNKNOWN )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ