test_class.declarator: requestContext = Mockito.mock(RequestContext.class)
test_class.modifier: private final
test_class.original_string: private final RequestContext requestContext = Mockito.mock(RequestContext.class);
test_class.type: RequestContext
test_class.var_name: requestContext
test_class.declarator: servletRequest = Mockito.mock(HttpServletRequest.class)
test_class.modifier: private final
test_class.original_string: private final HttpServletRequest servletRequest = Mockito.mock(HttpServletRequest.class);
test_class.type: HttpServletRequest
test_class.var_name: servletRequest
test_class.declarator: queryParams = new HashMap<>()
test_class.modifier: private final
test_class.original_string: private final Map<String, List<String>> queryParams = new HashMap<>();
test_class.type: Map<String, List<String>>
test_class.var_name: queryParams
test_class.declarator: extractor = new PathExtractor()
test_class.modifier: private final
test_class.original_string: private final PathExtractor extractor = new PathExtractor();
test_class.type: PathExtractor
test_class.var_name: extractor
test_class.file: manager/src/test/java/io/servicecomb/company/manager/filters/PathExtractorTest.java
test_class.identifier: PathExtractorTest
test_case.body: @Test
    public void extractsPathWithQueryStringAndPathInfo() {
      when(servletRequest.getPathInfo()).thenReturn("/id");
      when(requestContext.getRequestQueryParams()).thenReturn(queryParams);
  
      String path = extractor.path(requestContext);
  
      assertThat(path).isEqualTo("/root/path/to/resource/id?n=3&n=5");
    }
test_case.class_method_signature: PathExtractorTest.extractsPathWithQueryStringAndPathInfo()
test_case.full_signature: @Test public void extractsPathWithQueryStringAndPathInfo()
test_case.identifier: extractsPathWithQueryStringAndPathInfo
test_case.invocations: thenReturn when getPathInfo thenReturn when getRequestQueryParams path isEqualTo assertThat
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void extractsPathWithQueryStringAndPathInfo()
focal_class.file: manager/src/main/java/io/servicecomb/company/manager/filters/PathExtractor.java
focal_class.identifier: PathExtractor
focal_class.class_method_signature: PathExtractor.path(RequestContext context)
focal_class.full_signature:  String path(RequestContext context)
focal_class.identifier: path
focal_class.parameters: (RequestContext context)
focal_class.return: String
focal_class.signature: String path(RequestContext context)
focal_class.class_method_signature: PathExtractor.appendQueryParams(RequestContext context, StringBuilder builder)
focal_class.full_signature: private void appendQueryParams(RequestContext context, StringBuilder builder)
focal_class.identifier: appendQueryParams
focal_class.modifiers: private
focal_class.parameters: (RequestContext context, StringBuilder builder)
focal_class.return: void
focal_class.signature: void appendQueryParams(RequestContext context, StringBuilder builder)
focal_method.body: String path(RequestContext context) {
      HttpServletRequest request = context.getRequest();
      StringBuilder builder = new StringBuilder();
  
      builder.append(request.getContextPath()).append(request.getServletPath());
      if (request.getPathInfo() != null) {
        builder.append(request.getPathInfo());
      }
  
      if (context.getRequestQueryParams() != null) {
        appendQueryParams(context, builder);
      }
  
      return builder.toString();
    }
focal_method.class_method_signature: PathExtractor.path(RequestContext context)
focal_method.full_signature:  String path(RequestContext context)
focal_method.identifier: path
focal_method.invocations: getRequest append append getContextPath getServletPath getPathInfo append getPathInfo getRequestQueryParams appendQueryParams toString
focal_method.parameters: (RequestContext context)
focal_method.return: String
focal_method.signature: String path(RequestContext context)