package Ġco . brain ly . ones ky . client Ċ Ċ import Ġco . brain ly . ones ky . client . util . enqueue Response With Files Content Ċ import Ġco . brain ly . ones ky . util . Time Provider Ċ import Ġokhttp 3 . mock webserver . Mock WebServer Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . io . File Ċ Ċ class ĠOne Sky ApiClient Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġserver Ġ= ĠMock WebServer () ĊĊĠĠĠ Ġprivate Ġval ĠprojectId Ġ= Ġ 4 1 9 9 4 ĊĠĠĠ Ġprivate Ġval Ġclient Ġ= ĠOne Sky ApiClient ( ĊĠĠĠĠĠĠĠ Ġ" my - api - key ", ĊĠĠĠĠĠĠĠ Ġ" my - api - secret ", ĊĠĠĠĠĠĠĠ Ġapi Url Ġ= Ġserver . url ("/ "). toString (), ĊĠĠĠĠĠĠĠ Ġtime Provider Ġ= Ġobject Ġ: ĠTime Provider Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠcurrentTime Millis (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 1 2 3 4 5 L ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` downloads Ġlist Ġof Ġproject 's Ġlanguages `() Ġ{ ĊĠĠĠĠĠĠĠ Ġserver . enqueue Response With Files Content (" project _ languages _ response . json ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġclient . fetch Project Languages ( projectId ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġserver . take Request () ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ projects / 4 1 9 9 4 / languages ? api _ key = my - api - key & timestamp = 1 2 & dev _ hash = 2 8 dac 3 2 cc 9 ee 8 ab 2 6 4 d 3 5 0 8 7 6 5 3 be 2 3 e ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . path ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" en ", Ġ" English ", Ġtrue , Ġ" 1 0 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" fr ", Ġ" F rench ", Ġfalse , Ġ" 1 0 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" ru ", Ġ" R ussian ", Ġfalse , Ġ" 9 8 . 1 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" tr ", Ġ" Tur k ish ", Ġfalse , Ġ" 1 0 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" pl ", Ġ" Pol ish ", Ġfalse , Ġ" 1 0 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" ro ", Ġ" R oman ian ", Ġfalse , Ġ" 1 0 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" kn - IN ", Ġ" K ann ada Ġ( In dia )", Ġfalse , Ġ" 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" hi - IN ", Ġ" H indi Ġ( In dia )", Ġfalse , Ġ" 9 8 . 1 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" ta - IN ", Ġ" T amil Ġ( In dia )", Ġfalse , Ġ" 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" uk ", Ġ" U kr ain ian ", Ġfalse , Ġ" 9 9 . 2 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" te - IN ", Ġ" Tel ugu Ġ( In dia )", Ġfalse , Ġ" 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" id ", Ġ" Ind ones ian ", Ġfalse , Ġ" 9 9 . 8 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" ms ", Ġ" Mal ay ", Ġfalse , Ġ" 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" pa ", Ġ" P unj abi ", Ġfalse , Ġ" 0 . 1 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" bn - IN ", Ġ" B eng ali Ġ( In dia )", Ġfalse , Ġ" 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" ml - IN ", Ġ" Mal ay alam Ġ( In dia )", Ġfalse , Ġ" 9 8 . 1 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" pt - BR ", Ġ" Port ug ue se Ġ( Br azil )", Ġfalse , Ġ" 9 9 . 9 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" en - IN ", Ġ" English Ġ( In dia )", Ġfalse , Ġ" 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" mr ", Ġ" Mar ath i ", Ġfalse , Ġ" 9 6 . 9 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" gu - IN ", Ġ" Gu jar ati Ġ( In dia )", Ġfalse , Ġ" 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" or - IN ", Ġ" O ri ya Ġ( In dia )", Ġfalse , Ġ" 1 0 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" bn ", Ġ" B eng ali ", Ġfalse , Ġ" 1 0 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" ta ", Ġ" T amil ", Ġfalse , Ġ" 1 0 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" ur - IN ", Ġ" Ur du Ġ( In dia )", Ġfalse , Ġ" 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" en - US ", Ġ" English Ġ( United ĠStates )", Ġfalse , Ġ" 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" pa - IN ", Ġ" P unj abi Ġ( In dia )", Ġfalse , Ġ" 9 3 . 8 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" es - ES ", Ġ" Span ish Ġ( Sp ain )", Ġfalse , Ġ" 1 0 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" hi ", Ġ" H indi ", Ġfalse , Ġ" 9 8 . 1 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" gu ", Ġ" Gu jar ati ", Ġfalse , Ġ" 9 6 . 6 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" kn ", Ġ" K ann ada ", Ġfalse , Ġ" 9 0 . 9 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" ml ", Ġ" Mal ay alam ", Ġfalse , Ġ" 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" or ", Ġ" O ri ya ", Ġfalse , Ġ" 0 . 0 %"), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage (" te ", Ġ" Tel ugu ", Ġfalse , Ġ" 9 8 . 1 % ") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġresponse . get OrNull ()?. data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` downloads Ġa Ġtranslation Ġfile `() Ġ{ ĊĠĠĠĠĠĠĠ Ġserver . enqueue Response With Files Content (" example _ translation _ file . xml ") ĊĊĠĠĠĠĠĠĠ Ġval Ġlanguage Ġ= ĠLanguage (" fr ", Ġ" F rench ", Ġfalse , Ġ" 1 0 0 . 0 % ") ĊĠĠĠĠĠĠĠ Ġval Ġtranslation Result Ġ= Ġclient . fetch Translation ( projectId , Ġ" strings . xml ", Ġlanguage ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<? xml Ġversion =" 1 . 0 " Ġencoding =" UTF - 8 "?> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<!-- ĠName Ġof Ġthe Ġapplication Ġ--> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" app _ name "> N os dev o irs . fr </ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<!-- ĠName Ġof Ġthe Ġshortcut Ġfor Ġmemory Ġle aks Ġinfo Ġ--> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<!-- Ġerror Ġinform ing Ġthe Ġuser Ġthat Ġhe / she Ġdoesnt Ġhave Ġticket Ġ--> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" error _ task _ view _ no _ ticket "> D Ã© sol Ã© , Ġune Ġer reur Ġest Ġsur venue . ĠR Ã© ess ay e Ġplus Ġt ard . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<!-- Ġerror Ġinform ing Ġthe Ġuser Ġthat Ġthe Ġquestion Ġhe Ġopened Ġwas Ġdeleted Ġ--> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" error _ task _ view _ missing _ task "> La Ġquestion Ġa ĠÃ©tÃ© Ġsup prim Ã©e </ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation Result . get OrNull () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` uploads Ġa Ġtranslation Ġfile `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile . create TempFile (" ones ky ", Ġ". tmp ") ĊĠĠĠĠĠĠĠ Ġfile . write Text (" Hello ĠOne Sky ĠGradle ĠPlugin ") ĊĊĠĠĠĠĠĠĠ Ġclient . upload Translation ( projectId , Ġfile , Ġdeprec ate Strings Ġ= Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġserver . take Request () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ projects / 4 1 9 9 4 / files ? api _ key = my - api - key & timestamp = 1 2 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& dev _ hash = 2 8 dac 3 2 cc 9 ee 8 ab 2 6 4 d 3 5 0 8 7 6 5 3 be 2 3 e & file _ format = ANDROID _ XML & is _ keep ing _ all _ strings = true ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . path ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" POST ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . method ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ-- ones ky - gradle - plugin - file ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContent - Disposition : Ġform - data ; Ġname =" file "; Ġfilename ="${ file . name }" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContent - Type : Ġapplication / octet - stream ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContent - Length : Ġ 2 6 ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠHello ĠOne Sky ĠGradle ĠPlugin ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ-- ones ky - gradle - plugin - file -- ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (). replace ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ r \ n " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġ// Ġto Ġavoid Ġconflicts Ġwith ĠOk Http ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . body . read ByteString (). utf 8 () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` uploads Ġa Ġtranslation Ġfile Ġand Ġdeprec ate Ġold Ġstrings `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile . create TempFile (" ones ky ", Ġ". tmp ") ĊĠĠĠĠĠĠĠ Ġfile . write Text (" Hello ĠOne Sky ĠGradle ĠPlugin ") ĊĊĠĠĠĠĠĠĠ Ġclient . upload Translation ( projectId , Ġfile , Ġdeprec ate Strings Ġ= Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġserver . take Request () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ projects / 4 1 9 9 4 / files ? api _ key = my - api - key & timestamp = 1 2 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& dev _ hash = 2 8 dac 3 2 cc 9 ee 8 ab 2 6 4 d 3 5 0 8 7 6 5 3 be 2 3 e & file _ format = ANDROID _ XML & is _ keep ing _ all _ strings = false ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . path ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" POST ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . method ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ-- ones ky - gradle - plugin - file ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContent - Disposition : Ġform - data ; Ġname =" file "; Ġfilename ="${ file . name }" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContent - Type : Ġapplication / octet - stream ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContent - Length : Ġ 2 6 ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠHello ĠOne Sky ĠGradle ĠPlugin ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ-- ones ky - gradle - plugin - file -- ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (). replace ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ r \ n " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġ// Ġto Ġavoid Ġconflicts Ġwith ĠOk Http ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . body . read ByteString (). utf 8 () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ