package Ġcom . ch u cker team . ch u cker . internal . support Ċ Ċ import Ġcom . ch u cker team . ch u cker . internal . data . entity . Http Header Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠFormat UtilsTest Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġexample Headers List Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠHttp Header (" Accept ", Ġ" text / html "), ĊĠĠĠĠĠĠĠ ĠHttp Header (" Authorization ", Ġ" example Token ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` JSON Ġcan Ġhave Ġnull Ġfields `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparsed Json Ġ= ĠFormat Utils . format Json ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" { Ġ" field ": Ġnull Ġ} """ ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( parsed Json ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" field ": Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` JSON Ġcan Ġhave Ġempty Ġfields `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparsed Json Ġ= ĠFormat Utils . format Json ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" { Ġ" field ": Ġ"" Ġ} """ ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( parsed Json ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" field ": Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` JSON Ġcan Ġbe Ġinvalid `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparsed Json Ġ= ĠFormat Utils . format Json ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" [{ Ġ" field ": Ġnull Ġ} """ ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( parsed Json ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" [{ Ġ" field ": Ġnull Ġ} """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` JSON Ġobject Ġis Ġpretty Ġprinted `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparsed Json Ġ= ĠFormat Utils . format Json ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" { Ġ" field 1 ": Ġ" something ", Ġ" field 2 ": Ġ" else " Ġ} """ ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( parsed Json ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" field 1 ": Ġ" something ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" field 2 ": Ġ" else " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` JSON Ġarray Ġis Ġpretty Ġprinted `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparsed Json Ġ= ĠFormat Utils . format Json ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" [{ Ġ" field 1 ": Ġ" something 1 ", Ġ" field 2 ": Ġ" else 1 " Ġ}, Ġ{ Ġ" field 1 ": Ġ" something 2 ", Ġ" field 2 ": Ġ" else 2 " Ġ}] """ ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( parsed Json ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" field 1 ": Ġ" something 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" field 2 ": Ġ" else 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" field 1 ": Ġ" something 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" field 2 ": Ġ" else 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` headers Ġcan Ġhave Ġnull Ġvalues `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠFormat Utils . format Headers ( null , Ġwith Markup Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` headers Ġcan Ġhave Ġempty Ġvalues `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠFormat Utils . format Headers ( listOf (), Ġwith Markup Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` headers Ġare Ġformatted Ġwithout Ġmarkup `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠFormat Utils . format Headers ( example Headers List , Ġwith Markup Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ" Accept : Ġtext / html \ n Authorization : Ġexample Token \ n " ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` headers Ġare Ġformatted Ġwith Ġmarkup `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠFormat Utils . format Headers ( example Headers List , Ġwith Markup Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ"< b > ĠAccept : Ġ</ b > text / html Ġ< br Ġ/>< b > ĠAuthorization : Ġ</ b > example Token Ġ< br Ġ/> " ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` byte Ġcount Ġcan Ġbe Ġzero `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Non Si Ġ= ĠFormat Utils . format Byte Count ( 0 , Ġsi Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Si Ġ= ĠFormat Utils . format Byte Count ( 0 , Ġsi Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ" 0 ĠB " ĊĠĠĠĠĠĠĠ ĠassertThat ( result Non Si ). isEqualTo ( expected ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result Si ). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` 1 Ġki lob yte Ġis Ġformatted `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Format Byte Count ( 1 0 2 4 L , Ġ" 1 . 0 ĠkB ", Ġ" 1 . 0 ĠK iB ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` 1 0 2 3 Ġbytes Ġare Ġformatted `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Format Byte Count ( 1 0 2 3 L , Ġ" 1 . 0 ĠkB ", Ġ" 1 0 2 3 ĠB ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtest Format Byte Count ( ĊĠĠĠĠĠĠĠ Ġbyte Count To Test : ĠLong , ĊĠĠĠĠĠĠĠ Ġexpected Si : ĠString , ĊĠĠĠĠĠĠĠ Ġexpected Non Si : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Non Si Ġ= ĠFormat Utils . format Byte Count ( byte Count To Test , Ġsi Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Si Ġ= ĠFormat Utils . format Byte Count ( byte Count To Test , Ġsi Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result Non Si ). isEqualTo ( expected Non Si ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result Si ). isEqualTo ( expected Si ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` XML Ġcan Ġbe Ġempty `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Format Utils . format Xml (" ")). isEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` XML Ġhas Ġencoding Ġheader Ġadded `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġxml Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< example > value </ example > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<? xml Ġversion =" 1 . 0 " Ġencoding =" UTF - 8 " Ġstandalone =" no "?> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< example > value </ example > ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ ĠassertThat ( Format Utils . format Xml ( xml )). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` URL Ġencoded Ġform Ġcan Ġbe Ġblank `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Format Utils . format Url Encoded Form (" ĠĠĠ Ġ" )). isEqualTo (" ĠĠĠ Ġ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` URL Ġencoded Ġform Ġmultiple Ġparameters Ġare Ġformatted `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Key = Some % 2 0 value & some Other Key = With % 2 0 symbols % 2 0 % 2 5 ! % 4 0 % 2 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Key : ĠSome Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsome Other Key : ĠWith Ġsymbols Ġ% ! @% ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ ĠassertThat ( Format Utils . format Url Encoded Form ( request )). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` URL Ġencoded Ġform Ġsingle Ġparameter Ġis Ġformatted `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Key = Some % 2 0 value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Key : ĠSome Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ ĠassertThat ( Format Utils . format Url Encoded Form ( request )). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` URL Ġencoded Ġform Ġparameters Ġcan Ġbe Ġwithout Ġvalues `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Key =& some Other Key = ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Key : ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġsome Other Key : ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ ĠassertThat ( Format Utils . format Url Encoded Form ( request )). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` URL Ġencoded Ġform Ġparameters Ġcan Ġbe Ġinvalid `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Key = Some % 2 0 value % some Other Key = With % 2 0 symbols % 2 0 % 2 5 ! % 4 0 % 2 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ ĠassertThat ( Format Utils . format Url Encoded Form ( request )). isEqualTo ( request ) ĊĠĠĠ Ġ} Ċ } Ċ