### Question:
CSVRepository implements Repository { @Override public CheckpointCloseableIterable<ApiOperation> getChanges(byte[] checkpoint) throws RepositoryException { return new CheckpointCloseableIterableImpl.Builder<ApiOperation>(Collections.emptyIterator()) .build(); } CSVRepository(); @Override void init(RepositoryContext repositoryContext); @Override CheckpointCloseableIterable<ApiOperation> getIds(byte[] checkpoint); @Override CheckpointCloseableIterable<ApiOperation> getChanges(byte[] checkpoint); @Override ApiOperation getDoc(Item item); @Override boolean exists(Item item); @Override void close(); @Override CheckpointCloseableIterable<ApiOperation> getAllDocs(byte[] checkpoint);  }### Answer:
@Test public void getChanges_emptyIterable() throws Exception { CSVRepository csvRepository = new CSVRepository(); try (CheckpointCloseableIterable<ApiOperation> iterable = csvRepository.getChanges(null)) { assertNull(iterable.getCheckpoint()); assertFalse(iterable.hasMore()); Iterator<ApiOperation> iterator = iterable.iterator(); assertNotNull(iterator); assertFalse(iterator.hasNext()); } }