/* Ċ Ġ* ĠCopyright Ġ 2 0 0 2 - 2 0 2 0 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttps :// 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 Ġorg . springframework . test . web . servlet . result Ċ Ċ import Ġorg . hamcrest . Matcher Ċ import Ġorg . springframework . test . web . servlet . Result Actions Ċ import Ġorg . w 3 c . dom . Node Ċ import Ġorg . w 3 c . dom . NodeList Ċ Ċ /** Ċ Ġ* ĠProvide Ġa Ġ[ Xpath Result Matchers ] ĠKotlin ĠDSL Ġin Ġorder Ġto Ġbe Ġable Ġto Ġwrite Ġid iom atic ĠKotlin Ġcode . Ċ Ġ* Ċ Ġ* Ġ@ author ĠSeb ast ien ĠDe le u ze Ċ Ġ* Ġ@ since Ġ 5 . 3 Ċ Ġ*/ Ċ class ĠX path Result Matchers Dsl Ġinternal Ġconstructor ( private Ġval Ġactions : ĠResult Actions , Ġexpression : ĠString , Ġnamespaces : ĠMap < String , ĠString >? Ġ= Ġnull , Ġvar arg Ġargs : ĠAny ?) Ġ{ ĊĊ ĉ private Ġval Ġmatch ers Ġ= Ġif Ġ( namespaces Ġ== Ġnull ) ĠMock Mvc Result Matchers . xpath ( expression , Ġargs ) Ġelse ĠMock Mvc Result Matchers . xpath ( expression , Ġnamespaces , Ġargs ) ĊĊ ĉ /** Ċĉ Ġ* Ġ@ see ĠX path Result Matchers . node Ċĉ Ġ*/ Ċ ĉ fun Ġnode ( matcher : ĠMatcher < Node >) Ġ{ Ċĉ ĉ actions . andExpect ( matchers . node ( matcher )) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ@ see ĠX path Result Matchers . node List Ċĉ Ġ*/ Ċ ĉ fun Ġnode List ( matcher : ĠMatcher < NodeList >) Ġ{ Ċĉ ĉ actions . andExpect ( matchers . node List ( matcher )) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ@ see ĠX path Result Matchers . exists Ċĉ Ġ*/ Ċ ĉ fun Ġexists () Ġ{ Ċĉ ĉ actions . andExpect ( matchers . exists ()) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ@ see ĠX path Result Matchers . does NotExist Ċĉ Ġ*/ Ċ ĉ fun Ġdoes NotExist () Ġ{ Ċĉ ĉ actions . andExpect ( matchers . does NotExist ()) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ@ see ĠX path Result Matchers . node Count Ċĉ Ġ*/ Ċ ĉ fun Ġnode Count ( matcher : ĠMatcher < Int >) Ġ{ Ċĉ ĉ actions . andExpect ( matchers . node Count ( matcher )) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ@ see ĠX path Result Matchers . node Count Ċĉ Ġ*/ Ċ ĉ fun Ġnode Count ( expected Count : ĠInt ) Ġ{ Ċĉ ĉ actions . andExpect ( matchers . node Count ( expected Count )) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ@ see ĠX path Result Matchers . string Ċĉ Ġ*/ Ċ ĉ fun Ġstring ( matcher : ĠMatcher < String >) Ġ{ Ċĉ ĉ actions . andExpect ( matchers . string ( matcher )) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ@ see ĠX path Result Matchers . string Ċĉ Ġ*/ Ċ ĉ fun Ġstring ( expected Value : ĠString ) Ġ{ Ċĉ ĉ actions . andExpect ( matchers . string ( expected Value )) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ@ see ĠX path Result Matchers . number Ċĉ Ġ*/ Ċ ĉ fun Ġnumber ( matcher : ĠMatcher < Double >) Ġ{ Ċĉ ĉ actions . andExpect ( matchers . number ( matcher )) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ@ see ĠX path Result Matchers . number Ċĉ Ġ*/ Ċ ĉ fun Ġnumber ( expected Value : ĠDouble ) Ġ{ Ċĉ ĉ actions . andExpect ( matchers . number ( expected Value )) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ@ see ĠX path Result Matchers . boolean Value Ċĉ Ġ*/ Ċ ĉ fun Ġboolean Value ( value : ĠBoolean ) Ġ{ Ċĉ ĉ actions . andExpect ( matchers . boolean Value ( value )) Ċ ĉ } Ċ } Ċ