use of com.android.tools.idea.res.ResourceFolderRepositoryFileCacheImpl.CacheInvalidator in project android by JetBrains.
the class ResourceFolderRepositoryFileCacheTest method testManagerLRUProjectFilesInvalidationClears.
public void testManagerLRUProjectFilesInvalidationClears() throws IOException {
int lruLimit = 3;
int overLimit = 1;
List<File> projectDirList = addProjectDirectories(lruLimit, overLimit);
// Check that the expected directories exist before invalidation.
ResourceFolderRepositoryFileCache cache = ResourceFolderRepositoryFileCacheService.get();
assertTrue(cache.isValid());
ManageLruProjectFilesTask task = new ManageLruProjectFilesTask(getProject());
task.maintainLRUCache(lruLimit);
Path curProjectCacheDir = cache.getProjectDir(getProject());
assertNotNull(curProjectCacheDir);
FileUtil.ensureExists(curProjectCacheDir.toFile());
List<File> removed = ManageLruProjectFilesTask.updateLRUList(getProject(), projectDirList, lruLimit * 2);
assertEmpty(removed);
++overLimit;
for (int i = 0; i < lruLimit + overLimit; ++i) {
if (i < lruLimit) {
assertTrue(projectDirList.get(i).exists());
} else {
assertFalse(projectDirList.get(i).exists());
}
}
// Now invalidate and check that everything is deleted, including the stamp.
CacheInvalidator invalidator = new CacheInvalidator();
invalidator.invalidateCaches();
assertFalse(cache.isValid());
task.maintainLRUCache(lruLimit);
for (int i = 0; i < lruLimit + overLimit; ++i) {
assertFalse(projectDirList.get(i).exists());
}
assertTrue(cache.isValid());
}
Aggregations