package Ġno . nav . person br uk er . var sel db . api . common . exception Ċ Ċ import Ġio . ktor . http .* Ċ import Ġio . mock k . clear Mocks Ċ import Ġio . mock k . co Verify Ċ import Ġio . mock k . confirm Verified Ċ import Ġio . mock k . mock k Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġkotlinx . serialization . Serialization Exception Ċ import Ġorg . am sh ove . k lu ent .` should Ġbe Ġequal Ġto ` Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . slf 4 j . Logger Ċ Ċ internal Ġclass ĠException Response Handler Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlog Ġ= Ġmock k < Logger >( relax ed Ġ= Ġtrue ) ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġclear Mock () Ġ{ ĊĠĠĠĠĠĠĠ Ġclear Mocks ( log ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġhandle ĠDuplicate Var sel Exception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠDuplicate Var sel Exception (" Sim ul ert Ġfe il ") ĊĊĠĠĠĠĠĠĠ Ġval ĠerrorCode Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠException Response Handler . log Exception And Dec ide ErrorResponse Code ( log , Ġexception ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠerrorCode Ġ` should Ġbe Ġequal Ġto ` ĠHttpStatusCode . Conflict ĊĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlog . warn ( any < String >(), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( log ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġhandle ĠField ValidationException `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠField ValidationException (" Sim ul ert Ġfe il ") ĊĊĠĠĠĠĠĠĠ Ġval ĠerrorCode Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠException Response Handler . log Exception And Dec ide ErrorResponse Code ( log , Ġexception ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠerrorCode Ġ` should Ġbe Ġequal Ġto ` ĠHttpStatusCode . BadRequest ĊĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlog . warn ( any < String >(), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( log ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġhandle ĠSerialization Exception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠSerialization Exception (" Sim ul ert Ġfe il ") ĊĊĠĠĠĠĠĠĠ Ġval ĠerrorCode Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠException Response Handler . log Exception And Dec ide ErrorResponse Code ( log , Ġexception ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠerrorCode Ġ` should Ġbe Ġequal Ġto ` ĠHttpStatusCode . BadRequest ĊĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlog . warn ( any < String >(), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( log ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġhandle ĠDatabase Exception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠDatabase Exception (" Sim ul ert Ġfe il ") ĊĊĠĠĠĠĠĠĠ Ġval ĠerrorCode Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠException Response Handler . log Exception And Dec ide ErrorResponse Code ( log , Ġexception ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠerrorCode Ġ` should Ġbe Ġequal Ġto ` ĠHttpStatusCode . InternalServerError ĊĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlog . error ( any < String >(), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( log ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġhandle Ġunknown Ġexceptions `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠSecurity Exception (" Sim ul ert Ġfe il ") ĊĊĠĠĠĠĠĠĠ Ġval ĠerrorCode Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠException Response Handler . log Exception And Dec ide ErrorResponse Code ( log , Ġexception ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠerrorCode Ġ` should Ġbe Ġequal Ġto ` ĠHttpStatusCode . InternalServerError ĊĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlog . error ( any < String >(), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( log ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ