@Test
public void testFindNextDataCount() throws Exception {

    final String baseDir = getTestPath();
    assertNotNull(baseDir);
    try {
        final DateCache dateCache = new DateCache("yyyyMMddHHmmss", 1000);
        final VanillaDataCache cache = new VanillaDataCache(baseDir, 10 + 6, dateCache);
        int cycle = (int) (System.currentTimeMillis() / 1000);
        final int threadId = AffinitySupport.getThreadId();
        // Check that the data file count starts at 0 when the data directory is empty
        assertEquals(0, cache.findNextDataCount(cycle, threadId));
        // Add some more data files into the directory - use discontinuous numbers to test reading
        VanillaMappedBytes vanillaBuffer1 = cache.dataFor(cycle, threadId, 1, true);
        vanillaBuffer1.release();
        VanillaMappedBytes vanillaBuffer2 = cache.dataFor(cycle, threadId, 2, true);
        vanillaBuffer2.release();
        VanillaMappedBytes vanillaBuffer4 = cache.dataFor(cycle, threadId, 4, true);
        vanillaBuffer4.release();
        cache.checkCounts(1, 1);
        cache.close();
        // Open a new cache and check that it reads the existing data files that were created above
        final VanillaDataCache cache2 = new VanillaDataCache(baseDir, 10 + 6, dateCache);
        assertEquals(5, cache2.findNextDataCount(cycle, threadId));
        cache.checkCounts(1, 1);
        cache2.close();
    } finally {
        IOTools.deleteDir(baseDir);
        assertFalse(new File(baseDir).exists());
    }
}