package Ġio . must el id ae . ot ter . ne ot rop ical . api . domain . booking . api Ċ Ċ import Ġio . must el id ae . ot ter . ne ot rop ical . api . common . Product Code Ċ import Ġio . must el id ae . ot ter . ne ot rop ical . api . common . Rep lies Ċ import Ġio . must el id ae . ot ter . ne ot rop ical . api . permission . Role Header Ċ import Ġio . must el id ae . ot ter . ne ot rop ical . utils . fromJson Ċ import Ġio . must el id ae . ot ter . ne ot rop ical . utils . toJson Ċ import Ġorg . springframework . h ate o as . server . mvc . link To Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . test . web . servlet . MockMvc Ċ import Ġorg . springframework . test . web . servlet . post Ċ import Ġorg . springframework . test . web . servlet . put Ċ Ċ internal Ġclass ĠPost Pay Booking Controller Flow ( ĊĠĠĠ Ġprivate Ġval Ġmock Mvc : ĠMock Mvc Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġpost Book ( ĊĠĠĠĠĠĠĠ ĠuserId : ĠLong , ĊĠĠĠĠĠĠĠ Ġrequest : ĠBook ing Resources . Request . Post Pay Book ĊĠĠĠ Ġ): ĠList < Long > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= Ġlink To < Post Pay Booking Controller > Ġ{ Ġbook ( userId , Ġrequest ) Ġ}. to Uri () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmock Mvc . post ( uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcontentType Ġ= ĠMediaType . APPLICATION _ JSON ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccept Ġ= ĠMediaType . APPLICATION _ JSON ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader ( Role Header . X User . KEY , ĠuserId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġrequest . toJson () ĊĠĠĠĠĠĠĠ Ġ}. andExpect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ{ Ġis 2 xx Successful () Ġ} ĊĠĠĠĠĠĠĠ Ġ}. andReturn () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. response ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. content AsString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fromJson < Rep lies < Long >>() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getContent (). toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcomplete ( product Code : ĠProduct Code , Ġbooking Ids : ĠList < Long >, Ġrequest : ĠBook ing Resources . Request . Post Pay Complete Book ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= Ġlink To < Post Pay Booking Controller > Ġ{ Ġcomplete ( booking Ids , Ġrequest ) Ġ}. to Uri () ĊĊĠĠĠĠĠĠĠ Ġmock Mvc . put ( uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcontentType Ġ= ĠMediaType . APPLICATION _ JSON ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader ( Role Header . X System . KEY , Ġproduct Code . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccept Ġ= ĠMediaType . APPLICATION _ JSON ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġrequest ?. toJson () ĊĠĠĠĠĠĠĠ Ġ}. andExpect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ{ Ġis 2 xx Successful () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ