boolean isIdle() {
        lock.lock();
        try {
            return assignedSplits.isEmpty() && taskQueue.isEmpty() && runningTask == null;
        } finally {
            lock.unlock();
        }
    }
@Test
    public void testNewFetcherIsIdle() {
        final SplitFetcher<Object, TestingSourceSplit> fetcher =
                createFetcher(new TestingSplitReader<>());
        assertThat(fetcher.isIdle()).isTrue();
    }