test_class.declarator: rootDir
test_class.modifier: private final
test_class.original_string: private final Path rootDir;
test_class.type: Path
test_class.var_name: rootDir
test_class.declarator: fileLocator
test_class.modifier: private final
test_class.original_string: private final FileLocator fileLocator;
test_class.type: FileLocator
test_class.var_name: fileLocator
test_class.file: rawhttp-cli/src/test/java/rawhttp/cli/FileLocatorTest.java
test_class.identifier: FileLocatorTest
test_case.body: @Test
      public void canFindFileUsingAcceptHeader() {
          Optional<FileLocator.FileResult> result = fileLocator.find("p1/hello", singletonList("application/json"));
          assertTrue(result.isPresent());
          assertEquals(rootDir.resolve("p1/hello.json").toFile(), result.get().file);
          assertEquals(singletonList("application/json"), result.get().fileHttpHeaders.get("Content-Type"));
          assertTimestampIsWithinSecondsAgo(result.get().fileHttpHeaders.getFirst("Last-Modified").orElse("none"));
  
          result = fileLocator.find("p1/hello", singletonList("text/xml"));
          assertTrue(result.isPresent());
          assertEquals(rootDir.resolve("p1/hello.xml").toFile(), result.get().file);
          assertEquals(singletonList("text/xml"), result.get().fileHttpHeaders.get("Content-Type"));
          assertTimestampIsWithinSecondsAgo(result.get().fileHttpHeaders.getFirst("Last-Modified").orElse("none"));
      }
test_case.class_method_signature: FileLocatorTest.canFindFileUsingAcceptHeader()
test_case.full_signature: @Test public void canFindFileUsingAcceptHeader()
test_case.identifier: canFindFileUsingAcceptHeader
test_case.invocations: find singletonList assertTrue isPresent assertEquals toFile resolve get assertEquals singletonList get get assertTimestampIsWithinSecondsAgo orElse getFirst get find singletonList assertTrue isPresent assertEquals toFile resolve get assertEquals singletonList get get assertTimestampIsWithinSecondsAgo orElse getFirst get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void canFindFileUsingAcceptHeader()
focal_class.declarator: ANY_CONTENT_TYPE = singletonList("*/*")
focal_class.modifier: private static final
focal_class.original_string: private static final List<String> ANY_CONTENT_TYPE = singletonList("*/*");
focal_class.type: List<String>
focal_class.var_name: ANY_CONTENT_TYPE
focal_class.declarator: rootDir
focal_class.modifier: private final
focal_class.original_string: private final File rootDir;
focal_class.type: File
focal_class.var_name: rootDir
focal_class.declarator: mimeByFileExtension
focal_class.modifier: private final
focal_class.original_string: private final Map<String, String> mimeByFileExtension;
focal_class.type: Map<String, String>
focal_class.var_name: mimeByFileExtension
focal_class.file: rawhttp-cli/src/main/java/rawhttp/cli/FileLocator.java
focal_class.identifier: FileLocator
focal_class.class_method_signature: FileLocator.FileLocator(File rootDir, Map<String, String> mimeByFileExtension)
focal_class.full_signature:   FileLocator(File rootDir, Map<String, String> mimeByFileExtension)
focal_class.identifier: FileLocator
focal_class.parameters: (File rootDir, Map<String, String> mimeByFileExtension)
focal_class.signature:  FileLocator(File rootDir, Map<String, String> mimeByFileExtension)
focal_class.class_method_signature: FileLocator.find(String path, List<String> accept)
focal_class.full_signature:  Optional<FileResult> find(String path, List<String> accept)
focal_class.identifier: find
focal_class.parameters: (String path, List<String> accept)
focal_class.return: Optional<FileResult>
focal_class.signature: Optional<FileResult> find(String path, List<String> accept)
focal_class.class_method_signature: FileLocator.findWithExtension(String path, List<String> accept)
focal_class.full_signature: private Optional<FileResult> findWithExtension(String path, List<String> accept)
focal_class.identifier: findWithExtension
focal_class.modifiers: private
focal_class.parameters: (String path, List<String> accept)
focal_class.return: Optional<FileResult>
focal_class.signature: Optional<FileResult> findWithExtension(String path, List<String> accept)
focal_class.class_method_signature: FileLocator.groupCandidatesByMediaType(String resourceNameDot, File[] candidateFiles)
focal_class.full_signature: private Map<String, File> groupCandidatesByMediaType(String resourceNameDot, File[] candidateFiles)
focal_class.identifier: groupCandidatesByMediaType
focal_class.modifiers: private
focal_class.parameters: (String resourceNameDot, File[] candidateFiles)
focal_class.return: Map<String, File>
focal_class.signature: Map<String, File> groupCandidatesByMediaType(String resourceNameDot, File[] candidateFiles)
focal_class.class_method_signature: FileLocator.findExactMatch(String path)
focal_class.full_signature: private Optional<FileResult> findExactMatch(String path)
focal_class.identifier: findExactMatch
focal_class.modifiers: private
focal_class.parameters: (String path)
focal_class.return: Optional<FileResult>
focal_class.signature: Optional<FileResult> findExactMatch(String path)
focal_class.class_method_signature: FileLocator.fileHttpHeaders(File resource)
focal_class.full_signature: private RawHttpHeaders fileHttpHeaders(File resource)
focal_class.identifier: fileHttpHeaders
focal_class.modifiers: private
focal_class.parameters: (File resource)
focal_class.return: RawHttpHeaders
focal_class.signature: RawHttpHeaders fileHttpHeaders(File resource)
focal_class.class_method_signature: FileLocator.fileHttpHeaders(String contentType, long lastModified)
focal_class.full_signature: private static RawHttpHeaders fileHttpHeaders(String contentType, long lastModified)
focal_class.identifier: fileHttpHeaders
focal_class.modifiers: private static
focal_class.parameters: (String contentType, long lastModified)
focal_class.return: RawHttpHeaders
focal_class.signature: RawHttpHeaders fileHttpHeaders(String contentType, long lastModified)
focal_class.class_method_signature: FileLocator.toDateField(long lastModified)
focal_class.full_signature: private static String toDateField(long lastModified)
focal_class.identifier: toDateField
focal_class.modifiers: private static
focal_class.parameters: (long lastModified)
focal_class.return: String
focal_class.signature: String toDateField(long lastModified)
focal_class.class_method_signature: FileLocator.mimeTypeOf(String resourceName)
focal_class.full_signature:  String mimeTypeOf(String resourceName)
focal_class.identifier: mimeTypeOf
focal_class.parameters: (String resourceName)
focal_class.return: String
focal_class.signature: String mimeTypeOf(String resourceName)
focal_class.class_method_signature: FileLocator.getPathData(String path)
focal_class.full_signature: private PathData getPathData(String path)
focal_class.identifier: getPathData
focal_class.modifiers: private
focal_class.parameters: (String path)
focal_class.return: PathData
focal_class.signature: PathData getPathData(String path)
focal_method.body: Optional<FileResult> find(String path, List<String> accept) {
          Optional<FileResult> result = findExactMatch(path);
          if (!result.isPresent()) {
              result = findWithExtension(path, accept);
          }
          return result;
      }
focal_method.class_method_signature: FileLocator.find(String path, List<String> accept)
focal_method.full_signature:  Optional<FileResult> find(String path, List<String> accept)
focal_method.identifier: find
focal_method.invocations: findExactMatch isPresent findWithExtension
focal_method.parameters: (String path, List<String> accept)
focal_method.return: Optional<FileResult>
focal_method.signature: Optional<FileResult> find(String path, List<String> accept)