### Question:
FilesystemIngestSource implements IngestSource { public void setBase(String base) { URI baseUri = URI.create(base); if (baseUri.getScheme() == null || !baseUri.getScheme().equals("file")) { throw new IllegalArgumentException("Must specify a file URI for ingest source, but encountered: " + base); } this.basePath = Paths.get(baseUri); }  @Override String getId(); @Override String getName(); @Override boolean isReadOnly(); @Override boolean isInternal(); @Override StorageType getStorageType(); @Override String getType(); void setBase(String base); void setId(String id); void setName(String name); void setPatterns(List<String> patterns); void setReadOnly(boolean readOnly); void setInternal(boolean internal); @Override boolean isValidUri(URI uri); @Override boolean exists(URI uri); @Override List<IngestSourceCandidate> listCandidates(); @Override URI resolveRelativePath(String relative);  }### Answer:
@Test(expected = IllegalArgumentException.class) public void baseFieldWithoutScheme() { ingestSource.setBase(sourceFolderPath.toAbsolutePath().toString()); }
@Test public void baseFieldFromUri() { ingestSource.setBase(sourceFolderPath.toUri().toString()); }
@Test(expected = IllegalArgumentException.class) public void baseFieldFromNonFileUri() { ingestSource.setBase("http: }