package Ġorg . ko il . auth Ċ Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . ko il . Base IntegrationTest Ċ import Ġorg . springframework . security . test . web . servlet . request . Security MockMvc Request Post Processors Ċ import Ġorg . springframework . test . web . servlet . get Ċ import Ġorg . springframework . test . web . servlet . post Ċ Ċ class ĠPassword Reset Controller Test Ġ: ĠBase IntegrationTest () Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` G IV EN Ġan Ġexisting Ġuser ĠWHEN Ġreset ting Ġpassword ĠTHEN Ġsucceed `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Test Account Ġ{ Ġaccount Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Mvc . post ("/ auth / request - password - reset ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam (" email ", Ġaccount . email Address ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( Security MockMvc Request Post Processors . csrf ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. andExpect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis 3 xx Red irection () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreset Code Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Repository . find Account By EmailAddress IgnoreCase ( account . email Address )?. account Password Reset ?. reset Code !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Mvc . get ("/ auth / password - reset ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam (" code ", Ġreset Code . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. andExpect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis 2 xx Successful () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Mvc . post ("/ auth / password - reset ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam (" email ", Ġaccount . email Address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam (" code ", Ġreset Code . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam (" password ", Ġ" New Pass 2 1 3 !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam (" password Confirm ", Ġ" New Pass 2 1 3 !") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( Security MockMvc Request Post Processors . csrf ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. andExpect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis 3 xx Red irection () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstring (" location ", Ġ"/ dashboard ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` G IV EN Ġan Ġexisting Ġuser ĠWHEN Ġattempting Ġto Ġreset Ġpassword Ġwithout Ġvalid Ġcode ĠTHEN Ġreturn Ġfailure `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Test Account Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Mvc . get ("/ auth / password - reset ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( Security MockMvc Request Post Processors . csrf ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. andExpect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis 4 xx Client Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Mvc . get ("/ auth / password - reset ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( Security MockMvc Request Post Processors . csrf ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam (" code ", Ġ" 1 2 3 4 5 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. andExpect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis 4 xx Client Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ