@Override
    public Collection<FileSourceSplit> enumerateSplits(Path[] paths, int minDesiredSplits)
            throws IOException {
        final ArrayList<FileSourceSplit> splits = new ArrayList<>();

        for (Path path : paths) {
            final FileSystem fs = path.getFileSystem();
            final FileStatus status = fs.getFileStatus(path);
            addSplitsForPath(status, fs, splits);
        }

        return splits;
    }
@Test
    void testFileWithMultipleBlocks() throws Exception {
        final Path testPath = new Path("testfs:///dir/file");
        testFs =
                TestingFileSystem.createForFileStatus(
                        "testfs",
                        TestingFileSystem.TestFileStatus.forFileWithBlocks(
                                testPath,
                                1000L,
                                new TestingFileSystem.TestBlockLocation(0L, 100L, "host1", "host2"),
                                new TestingFileSystem.TestBlockLocation(
                                        100L, 520L, "host2", "host3"),
                                new TestingFileSystem.TestBlockLocation(
                                        620L, 380L, "host3", "host4")));
        testFs.register();

        final NonSplittingRecursiveEnumerator enumerator = createEnumerator();
        final Collection<FileSourceSplit> splits =
                enumerator.enumerateSplits(new Path[] {new Path("testfs:///dir")}, 0);

        assertSplitsEqual(
                new FileSourceSplit(
                        "ignoredId",
                        testPath,
                        0L,
                        1000L,
                        0,
                        1000L,
                        "host1",
                        "host2",
                        "host3",
                        "host4"),
                splits.iterator().next());
    }