Search in sources :

Example 1 with CacheInvalidator

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());
}
Also used : Path(java.nio.file.Path) ManageLruProjectFilesTask(com.android.tools.idea.res.ResourceFolderRepositoryFileCacheImpl.ManageLruProjectFilesTask) VirtualFile(com.intellij.openapi.vfs.VirtualFile) File(java.io.File) CacheInvalidator(com.android.tools.idea.res.ResourceFolderRepositoryFileCacheImpl.CacheInvalidator)

Aggregations

CacheInvalidator (com.android.tools.idea.res.ResourceFolderRepositoryFileCacheImpl.CacheInvalidator)1 ManageLruProjectFilesTask (com.android.tools.idea.res.ResourceFolderRepositoryFileCacheImpl.ManageLruProjectFilesTask)1 VirtualFile (com.intellij.openapi.vfs.VirtualFile)1 File (java.io.File)1 Path (java.nio.file.Path)1