test_class.declarator: ROUTE_PATH = "foo"
test_class.modifier: private static final
test_class.original_string: private static final String ROUTE_PATH = "foo";
test_class.type: String
test_class.var_name: ROUTE_PATH
test_class.declarator: HTTP_REQUEST = HttpRequest.GET("/" + ROUTE_PATH)
test_class.modifier: private static final
test_class.original_string: private static final HttpRequest HTTP_REQUEST = HttpRequest.GET("/" + ROUTE_PATH);
test_class.type: HttpRequest
test_class.var_name: HTTP_REQUEST
test_class.declarator: testName = new TestName()
test_class.modifier: @Rule
      public final
test_class.original_string: @Rule
      public final TestName testName = new TestName();
test_class.type: TestName
test_class.var_name: testName
test_class.declarator: dreToHttpResponse
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Function<DittoRuntimeException, HttpResponse> dreToHttpResponse;
test_class.type: Function<DittoRuntimeException, HttpResponse>
test_class.var_name: dreToHttpResponse
test_class.declarator: underTest
test_class.modifier: private
test_class.original_string: private ExceptionHandler underTest;
test_class.type: ExceptionHandler
test_class.var_name: underTest
test_class.file: services/gateway/endpoints/src/test/java/org/eclipse/ditto/services/gateway/endpoints/routes/RootRouteExceptionHandlerTest.java
test_class.identifier: RootRouteExceptionHandlerTest
test_class.superclass: extends JUnitRouteTest
test_case.body: @Test
      public void handleDittoRuntimeException() {
          final DittoHeaders dittoHeaders = DittoHeaders.newBuilder()
                  .correlationId(testName.getMethodName())
                  .build();
          final GatewayMethodNotAllowedException exception = GatewayMethodNotAllowedException.newBuilder("GET")
                  .dittoHeaders(dittoHeaders)
                  .build();
          final TestRoute testRoute = getTestRoute(() -> {
              throw exception;
          });
  
          testRoute.run(HTTP_REQUEST);
  
          Mockito.verify(dreToHttpResponse).apply(Mockito.eq(exception));
      }
test_case.class_method_signature: RootRouteExceptionHandlerTest.handleDittoRuntimeException()
test_case.full_signature: @Test public void handleDittoRuntimeException()
test_case.identifier: handleDittoRuntimeException
test_case.invocations: build correlationId newBuilder getMethodName build dittoHeaders newBuilder getTestRoute run apply verify eq
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void handleDittoRuntimeException()
focal_class.declarator: LOGGER = DittoLoggerFactory.getLogger(RootRouteExceptionHandler.class)
focal_class.modifier: private static final
focal_class.original_string: private static final DittoLogger LOGGER = DittoLoggerFactory.getLogger(RootRouteExceptionHandler.class);
focal_class.type: DittoLogger
focal_class.var_name: LOGGER
focal_class.declarator: dreToHttpResponse
focal_class.modifier: private final
focal_class.original_string: private final Function<DittoRuntimeException, HttpResponse> dreToHttpResponse;
focal_class.type: Function<DittoRuntimeException, HttpResponse>
focal_class.var_name: dreToHttpResponse
focal_class.file: services/gateway/endpoints/src/main/java/org/eclipse/ditto/services/gateway/endpoints/routes/RootRouteExceptionHandler.java
focal_class.identifier: RootRouteExceptionHandler
focal_class.class_method_signature: RootRouteExceptionHandler.RootRouteExceptionHandler(final Function<DittoRuntimeException, HttpResponse> dreToHttpResponse)
focal_class.full_signature: private  RootRouteExceptionHandler(final Function<DittoRuntimeException, HttpResponse> dreToHttpResponse)
focal_class.identifier: RootRouteExceptionHandler
focal_class.modifiers: private
focal_class.parameters: (final Function<DittoRuntimeException, HttpResponse> dreToHttpResponse)
focal_class.signature:  RootRouteExceptionHandler(final Function<DittoRuntimeException, HttpResponse> dreToHttpResponse)
focal_class.class_method_signature: RootRouteExceptionHandler.getInstance(
              final Function<DittoRuntimeException, HttpResponse> dittoRuntimeExceptionToHttpResponse)
focal_class.full_signature: public static ExceptionHandler getInstance(
              final Function<DittoRuntimeException, HttpResponse> dittoRuntimeExceptionToHttpResponse)
focal_class.identifier: getInstance
focal_class.modifiers: public static
focal_class.parameters: (
              final Function<DittoRuntimeException, HttpResponse> dittoRuntimeExceptionToHttpResponse)
focal_class.return: ExceptionHandler
focal_class.signature: ExceptionHandler getInstance(
              final Function<DittoRuntimeException, HttpResponse> dittoRuntimeExceptionToHttpResponse)
focal_class.class_method_signature: RootRouteExceptionHandler.handleDittoRuntimeException(final DittoRuntimeException dittoRuntimeException)
focal_class.full_signature: private Route handleDittoRuntimeException(final DittoRuntimeException dittoRuntimeException)
focal_class.identifier: handleDittoRuntimeException
focal_class.modifiers: private
focal_class.parameters: (final DittoRuntimeException dittoRuntimeException)
focal_class.return: Route
focal_class.signature: Route handleDittoRuntimeException(final DittoRuntimeException dittoRuntimeException)
focal_class.class_method_signature: RootRouteExceptionHandler.logException(final DittoRuntimeException exception)
focal_class.full_signature: private static void logException(final DittoRuntimeException exception)
focal_class.identifier: logException
focal_class.modifiers: private static
focal_class.parameters: (final DittoRuntimeException exception)
focal_class.return: void
focal_class.signature: void logException(final DittoRuntimeException exception)
focal_class.class_method_signature: RootRouteExceptionHandler.handleInternalServerError(final Throwable cause)
focal_class.full_signature: private static Route handleInternalServerError(final Throwable cause)
focal_class.identifier: handleInternalServerError
focal_class.modifiers: private static
focal_class.parameters: (final Throwable cause)
focal_class.return: Route
focal_class.signature: Route handleInternalServerError(final Throwable cause)
focal_method.body: private Route handleDittoRuntimeException(final DittoRuntimeException dittoRuntimeException) {
          logException(dittoRuntimeException);
          return Directives.complete(dreToHttpResponse.apply(dittoRuntimeException));
      }
focal_method.class_method_signature: RootRouteExceptionHandler.handleDittoRuntimeException(final DittoRuntimeException dittoRuntimeException)
focal_method.full_signature: private Route handleDittoRuntimeException(final DittoRuntimeException dittoRuntimeException)
focal_method.identifier: handleDittoRuntimeException
focal_method.invocations: logException complete apply
focal_method.modifiers: private
focal_method.parameters: (final DittoRuntimeException dittoRuntimeException)
focal_method.return: Route
focal_method.signature: Route handleDittoRuntimeException(final DittoRuntimeException dittoRuntimeException)