diff --git a/src/main/java/de/etecture/ga/exception/ResponseExceptionHandler.java b/src/main/java/de/etecture/ga/exception/ResponseExceptionHandler.java new file mode 100644 index 0000000..6f38011 --- /dev/null +++ b/src/main/java/de/etecture/ga/exception/ResponseExceptionHandler.java @@ -0,0 +1,19 @@ +package de.etecture.ga.exception; + +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.context.request.WebRequest; +import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; + +@ControllerAdvice +public class ResponseExceptionHandler extends ResponseEntityExceptionHandler { + + @ExceptionHandler(value = { IllegalArgumentException.class }) + protected ResponseEntity handleConflict(RuntimeException ex, WebRequest request) { + String bodyOfResponse = ex.getMessage(); + return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.NOT_ACCEPTABLE, request); + } +} \ No newline at end of file diff --git a/src/test/java/de/etecture/ga/api/GarageApiControllerTest.java b/src/test/java/de/etecture/ga/api/GarageApiControllerTest.java index 4b4a5a9..4c751ea 100644 --- a/src/test/java/de/etecture/ga/api/GarageApiControllerTest.java +++ b/src/test/java/de/etecture/ga/api/GarageApiControllerTest.java @@ -68,8 +68,8 @@ class GarageApiControllerTest { this.mockMvc .perform( - MockMvcRequestBuilders.get("/werkstatt/{werkstattId}/termin/{terminId}", testGarage.id(), "-5")) - .andDo(MockMvcResultHandlers.print()).andExpect(MockMvcResultMatchers.status().isNotFound()); + MockMvcRequestBuilders.get("/werkstatt/{werkstattId}/termin/{terminId}", testGarage.id(), "9999a")) + .andDo(MockMvcResultHandlers.print()).andExpect(MockMvcResultMatchers.status().isNotAcceptable()); this.mockMvc .perform(MockMvcRequestBuilders.get("/werkstatt/{werkstattId}/termin/{terminId}", 2,