package Ġio . github . ry b alk ins d . ko http . intercept ors . logging Ċ Ċ import Ġio . github . ry b alk ins d . ko http . dsl . context . HttpGet Context Ċ import Ġio . github . ry b alk ins d . ko http . dsl . context . HttpPost Context Ċ import Ġio . github . ry b alk ins d . ko http . ext . url Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġokhttp 3 .* Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . Test Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠSer ge y ĠR yb alk in Ġon Ġ 2 0 1 9 - 0 9 - 1 1 . Ċ Ġ*/ Ċ class ĠHttp Logging Interceptor Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` log Ġsimple Ġget Ġrequest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchain Ġ= Ġsetup Mock Chain Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl (" https :// postman - echo . com / get ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġchain . test () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). matches ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ--> Ġ$ UUID _ REGEX ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGET Ġhttps :// postman - echo . com / get Ġhttp / 1 . 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ--- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<-- Ġ$ UUID _ REGEX Ġin Ġ[ 0 - 9 ]+ Ġms ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 0 Ġhttp :// 1 2 7 . 0 . 0 . 1 / ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġb ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ--- ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` log Ġof Ġrequest Ġwith Ġheader `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchain Ġ= Ġsetup Mock Chain Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl (" https :// postman - echo . com / get ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookie Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" foo " Ġto Ġ 6 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" bar " Ġto Ġ 2 8 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Content - Type " Ġto Ġ" application / json " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġchain . test () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). matches ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ--> Ġ$ UUID _ REGEX ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGET Ġhttps :// postman - echo . com / get Ġhttp / 1 . 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookie Ġfoo = 6 ; Ġbar = 2 8 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContent - Type Ġapplication / json ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ--- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<-- Ġ$ UUID _ REGEX Ġin Ġ[ 0 - 9 ]+ Ġms ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 0 Ġhttp :// 1 2 7 . 0 . 0 . 1 / ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġb ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ--- ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` log Ġrequest Ġwith Ġbody `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchain Ġ= Ġsetup Post Mock Chain Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl (" https :// postman - echo . com / post ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" foo " Ġto Ġ 1 2 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" bar " Ġto Ġ" abc " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġchain . test () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). matches ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ--> Ġ$ UUID _ REGEX ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOST Ġhttps :// postman - echo . com / post Ġhttp / 1 . 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfoo = 1 2 3 & bar = abc ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ--- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<-- Ġ$ UUID _ REGEX Ġin Ġ[ 0 - 9 ]+ Ġms ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 0 Ġhttp :// 1 2 7 . 0 . 0 . 1 / ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġb ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ--- ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ private Ġfun ĠInter ceptor . Chain . test () Ġ= Ġbuild String Ġ{ ĊĠĠĠ ĠHttp Logging Interceptor Ġ{ Ġappend ln ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. intercept ( this @ test ) Ċ } Ċ Ċ private Ġfun Ġsetup Mock Chain ( init : ĠHttp Get Context . () Ġ-> ĠUnit ): ĠInter ceptor . Chain Ġ= ĊĠĠĠ Ġmock Chain (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrequest () Ġ} Ġreturns ĠHttp Get Context (). apply ( init ). make Request () ĊĠĠĠ Ġ} Ċ Ċ private Ġfun Ġsetup Post Mock Chain ( init : ĠHttp Post Context . () Ġ-> ĠUnit ): ĠInter ceptor . Chain Ġ= ĊĠĠĠ Ġmock Chain (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrequest () Ġ} Ġreturns ĠHttp Post Context (). apply ( init ). make Request () ĊĠĠĠ Ġ} ĊĊ Ċ private Ġfun Ġmock Chain () Ġ= Ġmock k < Interceptor . Chain >(). apply Ġ{ ĊĠĠĠ Ġval Ġresponse Ġ= Ġmock k < Response >() ĊĠĠĠ Ġevery Ġ{ Ġresponse . code () Ġ} Ġreturns Ġ 2 0 0 ĊĠĠĠ Ġevery Ġ{ Ġresponse . headers () Ġ} Ġreturns ĠHeaders . Builder (). add (" a ", Ġ" b "). build () ĊĠĠĠ Ġevery Ġ{ Ġresponse . request (). url () Ġ} Ġreturns ĠHttp Url . get (" http :// 1 2 7 . 0 . 0 . 1 ") ĊĠĠĠ Ġevery Ġ{ Ġproceed ( any ()) Ġ} Ġreturns Ġresponse ĊĠĠĠ Ġevery Ġ{ Ġconnection () Ġ} Ġreturns Ġmock k < Connection >(). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġprotocol () Ġ} Ġreturns ĠProtocol . HTTP _ 1 _ 1 ĊĠĠĠ Ġ} Ċ } Ċ Ċ const Ġval ĠUUID _ REGEX Ġ= Ġ"[ 0 - 9 a - fA - F ]{ 8 }\\ -[ 0 - 9 a - fA - F ]{ 4 }\\ -[ 0 - 9 a - fA - F ]{ 4 }\\ -[ 0 - 9 a - fA - F ]{ 4 }\\ -[ 0 - 9 a - fA - F ]{ 1 2 }" Ċ