@Override
  public Optional<CloseableIterator<String>> readFileSource(int fileRef) {
    ensureInitialized();
    File file = delegate.readFileSource(fileRef);
    if (file == null) {
      return Optional.empty();
    }

    try {
      return Optional.of(new CloseableLineIterator(IOUtils.lineIterator(FileUtils.openInputStream(file), UTF_8)));
    } catch (IOException e) {
      throw new IllegalStateException("Fail to traverse file: " + file, e);
    }
  }
@Test
  public void readFileSource_returns_absent_optional_when_file_does_not_exist() {
    assertThat(underTest.readFileSource(COMPONENT_REF)).isEmpty();
  }