package Ġpl . d roid son roid s . testing . mock webserver . condition Ċ Ċ import Ġokhttp 3 . Http Url Ċ Ċ /** Ċ Ġ* ĠA Ġ[ Condition ] Ġmatching Ġby ĠURL Ġpath , Ġoptional Ġquery Ġparameter Ġname Ġand Ġoptional Ġquery Ġparameter Ġvalue Ġfor Ġthat Ġname . Ċ Ġ* ĠInstances Ġare Ġsorted Ġfrom Ġleast Ġto Ġmost Ġgeneral Ġe . g . Ġone Ġcontaining Ġquery Ġparameter Ġname Ġcomes Ġbefore Ċ Ġ* Ġanother Ġcontaining Ġpath Ġonly . Ċ Ġ* Ġ@ property Ġpath ĠURL Ġpath , Ġrequired Ċ Ġ* Ġ@ property Ġquery ParameterName Ġquery Ġparameter Ġname , Ġoptional Ċ Ġ* Ġ@ property Ġquery ParameterName Ġquery Ġparameter Ġvalue Ġfor Ġgiven Ġname , Ġoptional Ċ Ġ*/ Ċ data Ġclass ĠPath Query Condition ( ĊĠĠĠ Ġinternal Ġval Ġpath : ĠString , ĊĠĠĠ Ġinternal Ġval Ġquery ParameterName : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġinternal Ġval Ġquery Parameter Value : ĠString ? Ġ= Ġnull Ċ ) Ġ: ĠHttp Url Condition () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcompare To ( other : ĠCondition ) Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġother Ġ== Ġthis Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠ Ġother Ġis ĠPath Query Condition Ġ&& Ġscore Ġ== Ġother . score Ġ-> Ġpath . compareTo ( other . path ) ĊĠĠĠĠĠĠĠ Ġother Ġis ĠPath Query Condition Ġ&& Ġscore Ġ> Ġother . score Ġ-> Ġ- 1 ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Url Matching ( url : ĠHttp Url ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest QueryParameter Names Ġ= Ġurl . query Parameter Names ĊĠĠĠĠĠĠĠ Ġif Ġ( url . encoded Path Ġ== Ġpath ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery ParameterName Ġ== Ġnull Ġ-> Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest QueryParameter Names . contains ( query ParameterName ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest QueryParameter Value Ġ= Ġurl . query Parameter ( query ParameterName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( query Parameter Value Ġ== Ġnull Ġ|| Ġquery Parameter Value Ġ== Ġrequest QueryParameter Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġscore : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( query ParameterName Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( query Parameter Value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 2 ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ } Ċ