/* Ċ Ġ* ĠJ aval in Ġ- Ġhttps :// jav al in . io Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠDavid ĠÃ ħ se Ċ Ġ* ĠLicensed Ġunder ĠApache Ġ 2 . 0 : Ġhttps :// github . com / tip sy / jav al in / blob / master / LICENSE Ċ Ġ*/ Ċ Ċ package Ġio . jav al in Ċ Ċ import Ġio . jav al in . plugin . metrics . Micro meter Plugin Ċ import Ġio . jav al in . testing . Http Util Ċ import Ġio . micro meter . core . instrument . Meter Registry Ċ import Ġio . micro meter . core . instrument . Tags Ċ import Ġio . micro meter . core . instrument . simple . Simple Meter Registry Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠTest Micro meter Plugin Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmeter Registry : ĠMeter Registry Ġ= ĠSimple Meter Registry () ĊĠĠĠ Ġval Ġapp : ĠJ aval in Ġ= ĠJ aval in . create Ġ{ Ġconfig Ġ-> Ġconfig . register Plugin ( Micro meter Plugin ( meter Registry , ĠTags . empty (), Ġtrue )) Ġ}. start ( 0 ); ĊĠĠĠ Ġval Ġhttp Ġ= ĠHttp Util ( app . port ()) ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġbefore () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġmust Ġmanually Ġdelegate Ġto ĠMicro meter Ġexception Ġhandler Ġfor Ġexcept on Ġtags Ġto Ġbe Ġcorrect ĊĠĠĠĠĠĠĠ Ġapp . exception ( IllegalArgumentException :: class . java ) Ġ{ Ġe , Ġctx Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMicro meter Plugin . EXCEPTION _ HANDLER . handle ( e , Ġctx ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace (); ĊĠĠĠĠĠĠĠ Ġ}; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġafter () Ġ{ ĊĠĠĠĠĠĠĠ Ġapp . stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` successful Ġrequest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġapp . get ("/ hello /: name ") Ġ{ Ġctx Ġ-> Ġctx . result (" Hello : Ġ" Ġ+ Ġctx . path Param (" name ")) Ġ} ĊĠĠĠĠĠĠĠ Ġhttp . get ("/ hello / jon ") ĊĠĠĠĠĠĠĠ Ġmeter Registry . get (" jetty . server . requests ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" uri ", Ġ"/ hello /: name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" method ", Ġ" GET ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" exception ", Ġ" None ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" status ", Ġ" 2 0 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" outcome ", Ġ" SUCCESS ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. timer () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` request Ġthrowing Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġapp . get ("/ boom ") Ġ{ Ġctx Ġ-> Ġthrow ĠIllegalArgumentException (" boom ") Ġ} ĊĠĠĠĠĠĠĠ Ġhttp . get ("/ boom ") ĊĠĠĠĠĠĠĠ Ġmeter Registry . get (" jetty . server . requests ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" uri ", Ġ"/ boom ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" method ", Ġ" GET ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" exception ", Ġ" IllegalArgumentException ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" status ", Ġ" 5 0 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" outcome ", Ġ" SERVER _ ERROR ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. timer () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġredirect () Ġ{ ĊĠĠĠĠĠĠĠ Ġapp . get ("/ hello ") Ġ{ Ġctx Ġ-> Ġctx . result (" Hello ") Ġ} ĊĠĠĠĠĠĠĠ Ġapp . get ("/ redirect ") Ġ{ Ġctx Ġ-> Ġctx . redirect ("/ hello ") Ġ} ĊĠĠĠĠĠĠĠ Ġhttp . get ("/ redirect ") ĊĠĠĠĠĠĠĠ Ġmeter Registry . get (" jetty . server . requests ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" uri ", Ġ" RE DIRECTION ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" method ", Ġ" GET ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" exception ", Ġ" None ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" status ", Ġ" 3 0 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" outcome ", Ġ" RE DIRECTION ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. timer () ĊĠĠĠĠĠĠĠ Ġmeter Registry . get (" jetty . server . requests ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" uri ", Ġ"/ hello ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" method ", Ġ" GET ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" exception ", Ġ" None ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" status ", Ġ" 2 0 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" outcome ", Ġ" SUCCESS ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. timer () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` not Ġfound `() Ġ{ ĊĠĠĠĠĠĠĠ Ġhttp . get ("/ does NotExist ") ĊĠĠĠĠĠĠĠ Ġmeter Registry . get (" jetty . server . requests ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" uri ", Ġ" NOT _ FOUND ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" method ", Ġ" GET ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" exception ", Ġ" None ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" status ", Ġ" 4 0 4 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag (" outcome ", Ġ" CLIENT _ ERROR ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. timer () ĊĠĠĠ Ġ} Ċ } Ċ