public void testLoadKeyWithInnerNonReadableDir() throws Exception { TestHelper.createIndex(rootDir, indexName, elementCount, true); File innerDir = new File(rootDir.getAbsoluteFile(), "index-B"); try { boolean created = innerDir.mkdir(); assert created; boolean isReadoff = innerDir.setReadable(false); boolean isWriteoff = innerDir.setWritable(false); if (isReadoff && isWriteoff) { LuceneCacheLoader cacheLoader = (LuceneCacheLoader) TestingUtil.getFirstLoader(cacheManager.getCache()); cacheLoader.load(5); } else { log.info("Skipping test because it is not possible to make the directory non-readable, i.e. because the tests are run with the root user."); } } catch(Exception ex) { assert ex instanceof PersistenceException; } finally { innerDir.setReadable(true); innerDir.setWritable(true); } }
@Test(expectedExceptions = PersistenceException.class) public void testLoadKeyWithNonExistentFile() throws Exception { LuceneCacheLoader cacheLoader = (LuceneCacheLoader) TestingUtil.getFirstLoader(cacheManager.getCache()); FileCacheKey key = new FileCacheKey(indexName, "testKey", segmentId); AssertJUnit.assertNull(cacheLoader.load(key)); }
public void testLoadKey() throws Exception { TestHelper.createIndex(rootDir, indexName, elementCount, true); String[] fileNamesFromIndexDir = TestHelper.getFileNamesFromDir(rootDir, indexName); LuceneCacheLoader cacheLoader = (LuceneCacheLoader) TestingUtil.getFirstLoader(cacheManager.getCache()); for(String fileName : fileNamesFromIndexDir) { FileCacheKey key = new FileCacheKey(indexName, fileName, segmentId); AssertJUnit.assertNotNull(cacheLoader.load(key)); //Testing non-existent keys with non-acceptable type AssertJUnit.assertNull(cacheLoader.load(fileName)); } }
public void testLoadAllKeysWithExclusion() throws Exception { TestHelper.createIndex(rootDir, indexName, elementCount, true); String[] fileNamesFromIndexDir = TestHelper.getFileNamesFromDir(rootDir, indexName); LuceneCacheLoader cacheLoader = (LuceneCacheLoader) TestingUtil.getFirstLoader(cacheManager.getCache()); Set keyList = PersistenceUtil.toKeySet(cacheLoader, null); int initialCount = keyList.size(); HashSet exclusionSet = new HashSet(); for(String fileName : fileNamesFromIndexDir) { FileCacheKey key = new FileCacheKey(indexName, fileName, segmentId); AssertJUnit.assertNotNull(cacheLoader.load(key)); exclusionSet.add(key); } keyList = PersistenceUtil.toKeySet(cacheLoader, k -> !exclusionSet.contains(k)); AssertJUnit.assertEquals((initialCount - fileNamesFromIndexDir.length), keyList.size()); Iterator it = keyList.iterator(); if(it.hasNext()) { assert !(it.next() instanceof FileCacheKey); } }
@Test public void testLoadAllKeysWithNullExclusion() throws Exception { TestHelper.createIndex(rootDir, indexName, elementCount, true); String[] fileNamesFromIndexDir = TestHelper.getFileNamesFromDir(rootDir, indexName); LuceneCacheLoader cacheLoader = (LuceneCacheLoader) TestingUtil.getFirstLoader(cacheManager.getCache()); Set keyList = PersistenceUtil.toKeySet(cacheLoader, null); for(String fileName : fileNamesFromIndexDir) { FileCacheKey key = new FileCacheKey(indexName, fileName, segmentId); AssertJUnit.assertNotNull(cacheLoader.load(key)); boolean found = false; for(Object keyFromList : keyList) { if(keyFromList instanceof FileCacheKey && keyFromList.equals(key)) { found = true; break; } } assert found : "No corresponding key was found for " + key; } }
public void testLoadAllKeys() throws Exception { TestHelper.createIndex(rootDir, indexName, elementCount, true); String[] fileNamesFromIndexDir = TestHelper.getFileNamesFromDir(rootDir, indexName); LuceneCacheLoader cacheLoader = (LuceneCacheLoader) TestingUtil.getFirstLoader(cacheManager.getCache()); Set keyList = PersistenceUtil.toKeySet(cacheLoader, null); for(String fileName : fileNamesFromIndexDir) { FileCacheKey key = new FileCacheKey(indexName, fileName, segmentId); AssertJUnit.assertNotNull(cacheLoader.load(key)); boolean found = false; for(Object keyFromList : keyList) { if(keyFromList instanceof FileCacheKey && keyFromList.equals(key)) { found = true; break; } } assert found : "No corresponding key was found for " + key; } }
public void testLoadEntries() throws Exception { TestHelper.createIndex(rootDir, indexName, elementCount, true); String[] fileNamesFromIndexDir = TestHelper.getFileNamesFromDir(rootDir, indexName); LuceneCacheLoader cacheLoader = (LuceneCacheLoader) TestingUtil.getFirstLoader(cacheManager.getCache()); Set<InternalCacheEntry> loadedEntrySet = PersistenceUtil.toEntrySet(cacheLoader, null, cache.getAdvancedCache().getComponentRegistry().getComponent(InternalEntryFactory.class)); for (String fileName : fileNamesFromIndexDir) { FileCacheKey key = new FileCacheKey(indexName, fileName, segmentId); AssertJUnit.assertNotNull(cacheLoader.load(key)); boolean found = false; for (InternalCacheEntry entry : loadedEntrySet) { FileCacheKey keyFromLoad = null; if (entry.getKey() instanceof FileCacheKey) { keyFromLoad = (FileCacheKey) entry.getKey(); if (keyFromLoad != null && keyFromLoad.equals(key)) { found = true; break; } } } assert found : "No corresponding entry found for " + key; } }