/** Ċ Ġ* ĠCopyright Ġ 2 0 1 7 - 2 0 1 8 ĠP iv otal ĠSoftware , ĠInc . Ċ Ġ* Ċ Ġ* Ġ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 Ġio . spring . gradle . bin tray Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . fasterxml . jackson . module . kotlin . Kotlin Module Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . Protocol Ċ import Ġokhttp 3 . Response Ċ import Ġokhttp 3 . ResponseBody Ċ import Ġok io . Buffer Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ Ċ object ĠB intr ay Api Matchers Ġ{ Ċ ĉ fun Ġpath Eq ( path : ĠString , Ġresponse Code : ĠInt Ġ= Ġ 2 0 0 ) Ġ= ĠPath Equals Interceptor ( path , Ġresponse Code ) Ċ ĉ fun Ġ< T Ġ: ĠAny > Ġbody Eq ( body : ĠT ) Ġ= ĠBody Equals Interceptor ( body ) Ċ } Ċ Ċ class ĠPath Equals Interceptor ( private Ġval Ġpath : ĠString , Ġprivate Ġval Ġresponse Code : ĠInt ) Ġ: ĠInter ceptor Ġ{ Ċ ĉ override Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ Ċĉ ĉ val Ġrequest Ġ= Ġchain . request () ĊĊĉ ĉ assertThat ( request . url (). encoded Path ()). isEqualTo ( path ) ĊĊĉ ĉ return ĠResponse . Builder () Ċĉĉĉ ĉ . request ( request ) Ċĉĉĉ ĉ . protocol ( Protocol . HTTP _ 1 _ 1 ) Ċĉĉĉ ĉ . code ( response Code ) Ċĉĉĉ ĉ . message (" path Ġmatcher ") Ċĉĉĉ ĉ . body ( ResponseBody . create ( MediaType . parse (" text / plain "), Ġ"")) Ċĉĉĉ ĉ . build () Ċ ĉ } Ċ } Ċ Ċ class ĠBody Equals Interceptor < T Ġ: ĠAny >( private Ġval Ġbody : ĠT ) Ġ: ĠInter ceptor Ġ{ Ċ ĉ override Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ Ċĉ ĉ val Ġrequest Ġ= Ġchain . request () ĊĊĉ ĉ val Ġcopy Ġ= Ġrequest . newBuilder (). build () Ċĉ ĉ val Ġbuffer Ġ= ĠBuffer () Ċĉ ĉ copy . body ()?. writeTo ( buffer ) Ċĉ ĉ val Ġbody Ġ= ĠObjectMapper (). register Module ( Kotlin Module ()) Ċĉĉĉ ĉ . readValue ( buffer . read ByteArray (), Ġbody . java Class ) ĊĊĉ ĉ assertThat ( body ). isEqualTo ( body ) ĊĊĉ ĉ return ĠResponse . Builder () Ċĉĉĉ ĉ . request ( request ) Ċĉĉĉ ĉ . protocol ( Protocol . HTTP _ 1 _ 1 ) Ċĉĉĉ ĉ . code ( 2 0 0 ) Ċĉĉĉ ĉ . build () Ċ ĉ } Ċ }