package Ġuk . gov . just ice . digital . h mp ps . risk profiler . integration . wire mock Ċ Ċ import Ġcom . github . tom ake hur st . wire mock . Wire Mock Server Ċ import Ġcom . github . tom ake hur st . wire mock . client . Wire Mock Ċ import Ġcom . github . tom ake hur st . wire mock . http . Http Header Ċ import Ġcom . github . tom ake hur st . wire mock . http . HttpHeaders Ċ import Ġcom . github . tom ake hur st . wire mock . matching . EqualTo Pattern Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġcom . google . gson . Type Adapter Ċ import Ġcom . google . gson . stream . Json Reader Ċ import Ġcom . google . gson . stream . Json Writer Ċ import Ġuk . gov . just ice . digital . h mp ps . risk profiler . model . Alert Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . format . DateTime Formatter Ċ Ċ class ĠOAuth Mock Server Ġ: ĠWire Mock Server ( 9 0 9 0 ) Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġval Ġoauth Mock Server Ġ= ĠOAuth Mock Server () ĊĠĠĠ Ġval Ġd um Ġ= Ġoauth Mock Server . start () ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġgson Ġ= ĠGson Builder (). create () ĊĊĠ Ġfun Ġstub Grant Token () Ġ{ ĊĠĠĠ Ġstub For ( ĊĠĠĠĠĠ ĠWire Mock . post ( Wire Mock . url EqualTo ("/ auth / oauth / token ")) ĊĠĠĠĠĠĠĠ Ġ. with Header (" Authorization ", ĠEqual To Pattern (" Basic Ġc ml z ay 1 w cm 9 ma Wx lc jp jb G ll bn Rz Z WN y ZX Q =" )) ĊĠĠĠĠĠĠĠ Ġ. willReturn ( ĊĠĠĠĠĠĠĠĠĠ ĠWire Mock . a Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Headers ( HttpHeaders ( Http Header (" Content - Type ", Ġ" application / json "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Body ( gson . toJson ( map Of (" access _ token " Ġto Ġ" ABC DE ", Ġ" token _ type " Ġto Ġ" bearer "))) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ } Ċ Ċ class ĠPr ison Mock Server Ġ: ĠWire Mock Server ( 8 0 8 0 ) Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġval Ġpr ison Mock Server Ġ= ĠPr ison Mock Server () ĊĠĠĠ Ġval Ġd um Ġ= Ġpr ison Mock Server . start () ĊĠ Ġ} ĊĊĠ Ġclass ĠLocalDate Type Adapter Ġ: ĠType Adapter < LocalDate >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġwrite ( out : ĠJson Writer , Ġvalue : ĠLocalDate ) Ġ{ ĊĠĠĠĠĠ Ġout . value ( DateTime Formatter . ISO _ LOCAL _ DATE . format ( value )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġread ( input : ĠJson Reader ): ĠLocalDate Ġ= ĠLocalDate . parse ( input . next String ()) ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġgson Ġ= ĠGson Builder (). register Type Adapter ( ĊĠĠĠ ĠLocalDate :: class . java , ĠLocalDate Type Adapter (). null Safe () ĊĠ Ġ). create () ĊĊĠ Ġfun Ġstub Incident s () Ġ{ ĊĠĠĠ Ġstub For ( ĊĠĠĠĠĠ ĠWire Mock . get ( Wire Mock . url Matching ("/ api / off enders / A 1 2 3 4 AB / incident s .+ ")) ĊĠĠĠĠĠĠĠ Ġ. willReturn ( ĊĠĠĠĠĠĠĠĠĠ ĠWire Mock . a Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Headers ( HttpHeaders ( Http Header (" Content - Type ", Ġ" application / json "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Body ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" part ies " Ġto ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" booking Id " Ġto Ġ 1 2 4 1 2 3 2 , Ġ" outcome Code " Ġto Ġ" POR "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" incident Title " Ġto Ġ" Ass ault Ġon Ġstaff Ġmember " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ// ĠWarning : Ġwill Ġbe Ġcached Ġby ĠRED IS Ġ! ĊĠ Ġfun Ġstub Alerts () Ġ{ ĊĠĠĠ Ġval Ġrecent Ġ= ĠLocalDate . of ( 2 0 2 1 , Ġ 6 , Ġ 1 4 ) ĊĠĠĠ Ġval Ġalert 1 Ġ= ĠAlert ( ĊĠĠĠĠĠĠ 1 2 3 4 , ĊĠĠĠĠĠĠ 1 2 , ĊĠĠĠĠĠ Ġ" A 1 2 3 4 AB ", ĊĠĠĠĠĠ Ġ" POR ", ĊĠĠĠĠĠ Ġ" desc ", ĊĠĠĠĠĠ Ġ" D UM ", ĊĠĠĠĠĠ Ġ" desc ", ĊĠĠĠĠĠ Ġ" comment ", ĊĠĠĠĠĠ Ġrecent , ĊĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠ 1 ĊĠĠĠ Ġ) ĊĠĠĠ Ġval Ġalert 2 Ġ= ĠAlert ( ĊĠĠĠĠĠĠ 5 6 7 8 , ĊĠĠĠĠĠĠ 1 2 , ĊĠĠĠĠĠ Ġ" A 1 2 3 4 AB ", ĊĠĠĠĠĠ Ġ" POR ", ĊĠĠĠĠĠ Ġ" desc ", ĊĠĠĠĠĠ Ġ" D UM ", ĊĠĠĠĠĠ Ġ" desc ", ĊĠĠĠĠĠ Ġ" comment ", ĊĠĠĠĠĠ Ġrecent , ĊĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠ 1 ĊĠĠĠ Ġ) ĊĠĠĠ Ġstub For ( ĊĠĠĠĠĠ ĠWire Mock . get ( Wire Mock . url Matching ("/ api / off enders /. +/ alerts / v 2 \\ ? alert Codes =. + ")) ĊĠĠĠĠĠĠĠ Ġ. willReturn ( ĊĠĠĠĠĠĠĠĠĠ ĠWire Mock . a Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Headers ( HttpHeaders ( Http Header (" Content - Type ", Ġ" application / json "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Body ( gson . toJson ( listOf ( alert 1 , Ġalert 2 ))) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġfun Ġstub Booking Details ( booking Id : ĠInt ) Ġ{ ĊĠĠĠ Ġstub For ( ĊĠĠĠĠĠ ĠWire Mock . get ( Wire Mock . url EqualTo ("/ api / bookings / v 2 ? booking Id =$ booking Id & legal Info = true ")) ĊĠĠĠĠĠĠĠ Ġ. willReturn ( ĊĠĠĠĠĠĠĠĠĠ ĠWire Mock . a Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Headers ( HttpHeaders ( Http Header (" Content - Type ", Ġ" application / json "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Body ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" content " Ġto ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" booking Id " Ġto Ġbooking Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" imp r ison ment Status " Ġto Ġ" OTHER " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" size " Ġto Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" number " Ġto Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" total Elements " Ġto Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġfun Ġstub Off ender ( off ender No : ĠString ) Ġ{ ĊĠĠĠ Ġstub For ( ĊĠĠĠĠĠ ĠWire Mock . get ( Wire Mock . url EqualTo ("/ api / bookings / off ender No /$ off ender No ")) ĊĠĠĠĠĠĠĠ Ġ. willReturn ( ĊĠĠĠĠĠĠĠĠĠ ĠWire Mock . a Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Headers ( HttpHeaders ( Http Header (" Content - Type ", Ġ" application / json "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Body ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" booking Id " Ġto Ġ 1 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" off ender No " Ġto Ġoff ender No ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġfun Ġstub Sent ences ( booking Id : ĠInt ) Ġ{ ĊĠĠĠ Ġstub For ( ĊĠĠĠĠĠ ĠWire Mock . get ( Wire Mock . url EqualTo ("/ api / off ender - sentences / booking /$ booking Id / sentence Terms ")) ĊĠĠĠĠĠĠĠ Ġ. willReturn ( ĊĠĠĠĠĠĠĠĠĠ ĠWire Mock . a Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Headers ( HttpHeaders ( Http Header (" Content - Type ", Ġ" application / json "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Body ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" booking Id " Ġto Ġbooking Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" life Sentence " Ġto Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġfun Ġstub Main Off ence ( booking Id : ĠInt ) Ġ{ ĊĠĠĠ Ġstub For ( ĊĠĠĠĠĠ ĠWire Mock . get ( Wire Mock . url EqualTo ("/ api / bookings /$ booking Id / main Off ence ")) ĊĠĠĠĠĠĠĠ Ġ. willReturn ( ĊĠĠĠĠĠĠĠĠĠ ĠWire Mock . a Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Headers ( HttpHeaders ( Http Header (" Content - Type ", Ġ" application / json "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Body ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" booking Id " Ġto Ġbooking Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" off ence Description " Ġto Ġ" M UR DER " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġfun Ġstub Ping () Ġ{ ĊĠĠĠ Ġstub For ( ĊĠĠĠĠĠ ĠWire Mock . get ( Wire Mock . url EqualTo ("/ ping ")) ĊĠĠĠĠĠĠĠ Ġ. willReturn ( ĊĠĠĠĠĠĠĠĠĠ ĠWire Mock . a Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ. with Headers ( HttpHeaders ( Http Header (" Content - Type ", Ġ" application / json "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Body (" p ong ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ } Ċ Ċ class ĠPath finder Mock Server Ġ: ĠWire Mock Server ( 8 0 8 3 ) Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġval Ġpath finder Mock Server Ġ= ĠPath finder Mock Server () ĊĠĠĠ Ġval Ġd um Ġ= Ġpath finder Mock Server . start () ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġgson Ġ= ĠGson Builder (). create () ĊĊĠ Ġfun Ġstub Ping () Ġ{ ĊĠĠĠ Ġstub For ( ĊĠĠĠĠĠ ĠWire Mock . get ( Wire Mock . url EqualTo ("/ ping ")) ĊĠĠĠĠĠĠĠ Ġ. willReturn ( ĊĠĠĠĠĠĠĠĠĠ ĠWire Mock . a Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ. with Headers ( HttpHeaders ( Http Header (" Content - Type ", Ġ" application / json "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Body (" p ong ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ } Ċ