@Test public void testPeriodicClear() throws IOException { FileCache cache = new FileCache(0, 10, 60 * 60); testPeriodicCleanup(cache); Map<Object, FileCache.CacheElement> map = cache.getCache(); assert map.values().size() == 0 : map.values().size(); cache = new FileCache(5, 10, 60 * 60); testPeriodicCleanup(cache); map = cache.getCache(); assert map.values().size() == 5 : map.values().size(); }
private void testPeriodicCleanup(FileCache cache) throws IOException { loadFilesIntoCache(new File(TestDir.cdmLocalTestDataDir), cache); System.out.println(" loaded " + count); // close all Map<Object, FileCache.CacheElement> map = cache.getCache(); List<FileCacheable> files = new ArrayList<>(); for (Object key : map.keySet()) { FileCache.CacheElement elem = map.get(key); assert elem.list.size() == 1; for (FileCache.CacheElement.CacheFile file : elem.list) { files.add(file.ncfile); } } System.out.println(" close " + files.size()); for (FileCacheable ncfile : files) { ncfile.close(); } cache.showCache(new Formatter(System.out)); cache.cleanup(10); }
@Test public void testConcurrentAccess() throws InterruptedException { loadFilesIntoCache(new File(TestDir.cdmLocalTestDataDir), cache); Map<Object, FileCache.CacheElement> map = cache.getCache(); List<String> files = new ArrayList<>(); for (Object key : map.keySet()) { int total_locks = 0; HashSet<Object> checkUnique = new HashSet<>(); map = cache.getCache(); for (Object key : map.keySet()) { assert !checkUnique.contains(key);
Map<Object, FileCache.CacheElement> map = cache.getCache(); Assert.assertEquals(count, map.values().size()); map = cache.getCache(); cache.showCache(new Formatter(System.out)); map = cache.getCache(); Assert.assertEquals(0, map.values().size()); map = cache.getCache(); Assert.assertEquals(saveCount, map.values().size()); map = cache.getCache(); Assert.assertEquals(0, map.values().size()); map = cache.getCache(); Assert.assertEquals(saveCount, map.values().size()); map = cache.getCache(); Assert.assertEquals(saveCount, map.values().size()); map = cache.getCache(); Assert.assertEquals(saveCount, map.values().size());