/** * Deletes files in the the cache directory using a LRU-strategy until <tt>keepBytes</tt> * bytes are left. This method calls {@link #clear(long)} using the <tt>keepBytes</tt> * property. * * <p>This method should not be run while an operation is executed. */ public void clear() { clear(keepBytes); }
private void clearCache() { config.getCache().clear(); } }
@Test public void testCacheNeedsCleaning2Left() throws Exception { File testCacheFolder = TestFileUtil.createTempDirectoryInSystemTemp(); Cache cache = new Cache(testCacheFolder); cache.setKeepBytes(50*1024); TestFileUtil.createRandomFile(new File(testCacheFolder, "40"), 40*1024); Thread.sleep(1001); // Linux/ext3 only has 1s accuracy TestFileUtil.createRandomFile(new File(testCacheFolder, "30"), 30*1024); Thread.sleep(1001); TestFileUtil.createRandomFile(new File(testCacheFolder, "20"), 20*1024); Thread.sleep(1001); TestFileUtil.createRandomFile(new File(testCacheFolder, "10"), 10*1024); assertEquals(4, testCacheFolder.listFiles().length); cache.clear(); assertEquals(2, testCacheFolder.listFiles().length); assertFalse(new File(testCacheFolder, "40").exists()); assertFalse(new File(testCacheFolder, "30").exists()); assertTrue(new File(testCacheFolder, "20").exists()); assertTrue(new File(testCacheFolder, "10").exists()); TestFileUtil.deleteDirectory(testCacheFolder); } }
@Test public void testCacheNeedsCleaning1Left() throws Exception { File testCacheFolder = TestFileUtil.createTempDirectoryInSystemTemp(); Cache cache = new Cache(testCacheFolder); cache.setKeepBytes(50*1024); TestFileUtil.createRandomFile(new File(testCacheFolder, "10"), 10*1024); Thread.sleep(1001); // Linux/ext3 only has 1s accuracy TestFileUtil.createRandomFile(new File(testCacheFolder, "30"), 30*1024); Thread.sleep(1001); TestFileUtil.createRandomFile(new File(testCacheFolder, "20"), 20*1024); Thread.sleep(1001); TestFileUtil.createRandomFile(new File(testCacheFolder, "40"), 40*1024); assertEquals(4, testCacheFolder.listFiles().length); cache.clear(); assertEquals(1, testCacheFolder.listFiles().length); assertFalse(new File(testCacheFolder, "10").exists()); assertFalse(new File(testCacheFolder, "30").exists()); assertFalse(new File(testCacheFolder, "20").exists()); assertTrue(new File(testCacheFolder, "40").exists()); TestFileUtil.deleteDirectory(testCacheFolder); }
@Test public void testCacheSizeOkay() throws Exception { File testCacheFolder = TestFileUtil.createTempDirectoryInSystemTemp(); Cache cache = new Cache(testCacheFolder); cache.setKeepBytes(50*1024); TestFileUtil.createRandomFilesInDirectory(testCacheFolder, 10*1024, 4); assertEquals(4, testCacheFolder.listFiles().length); cache.clear(); assertEquals(4, testCacheFolder.listFiles().length); TestFileUtil.deleteDirectory(testCacheFolder); }
@Test public void testCacheNeedsCleaning5Left() throws Exception { File testCacheFolder = TestFileUtil.createTempDirectoryInSystemTemp(); Cache cache = new Cache(testCacheFolder); cache.setKeepBytes(50*1024); TestFileUtil.createRandomFilesInDirectory(testCacheFolder, 10*1024, 10); assertEquals(10, testCacheFolder.listFiles().length); cache.clear(); assertEquals(5, testCacheFolder.listFiles().length); TestFileUtil.deleteDirectory(testCacheFolder); }