package Ġcom . co ach . fl ame . exception . handlers Ċ Ċ import Ġcom . co ach . fl ame . failure . domain . Error Detail Ċ import Ġio . mock k . clear All Mocks Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġio . mock k . junit 5 . Mock K Extension Ċ import Ġorg . assertj . core . api . BDD Assertions . then Ċ import Ġorg . junit . jupiter . api . After Each Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . web . context . request . WebRequest Ċ Ċ @ Extend With ( Mock K Extension :: class ) Ċ class ĠDefault ExceptionHandler Test Ġ{ ĊĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrequest : ĠWeb Request ĊĊĠĠĠ Ġprivate Ġval Ġdefault ExceptionHandler Ġ= ĠDefault ExceptionHandler ( true ) ĊĊĠĠĠ Ġ@ After Each ĊĠĠĠ Ġfun Ġclean Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġclear All Mocks () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġhandler Ġfor Ġbusiness Ġexceptions `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠRuntimeException (" RUNTIME ĠEXCEPTION ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġresponse Entity Ġ= Ġdefault ExceptionHandler . handle Root Exception ( exception , Ġrequest ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġthen ( response Entity . statusCode ). isEqualTo ( HttpStatus . INTERNAL _ SERVER _ ERROR ) ĊĠĠĠĠĠĠĠ Ġthen ( response Entity . headers . contentType ). isEqualTo ( MediaType . APPLICATION _ PRO BLE M _ JSON ) ĊĠĠĠĠĠĠĠ Ġ// FIX ME : ĠAdd Ġmore Ġassertions Ġto Ġcheck Ġthe Ġerror Ġdetails Ġinstance ĊĠĠĠĠĠĠĠ Ġthen ( response Entity . body ). isNot EqualTo ( Error Detail . Builder (). throwable ( exception ). build ()) ĊĊĠĠĠ Ġ} Ċ Ċ }