@Test public void testRenameFile() throws Exception { Directory dir = null; try { Cache cache = cacheManager.getCache(); String fileName = "testfile.txt"; String newFileName = "newtestfile.txt"; dir = DirectoryBuilder.newDirectoryInstance(cache, cache, cache, "indexName").create(); createFile(fileName, dir); ((DirectoryExtensions) dir).renameFile(fileName, newFileName); List<String> files = Arrays.asList(dir.listAll()); assert !files.contains(fileName); assert files.contains(newFileName); } finally { if (dir != null) dir.close(); } }
/** * Helper for testReadWholeFile test: * creates a file and then verifies it's readability in specific corner cases. * Then reuses the same parameters to verify the file rename capabilities. */ private void verifyOnBuffer(final String fileName, final int fileSize, final int bufferSize, Cache cache, Directory dir, final int readBuffer) throws IOException { createFileWithRepeatableContent(dir, fileName, fileSize); assertReadByteWorkingCorrectly(dir, fileName, fileSize); assertReadBytesWorkingCorrectly(dir, fileName, fileSize, readBuffer); DirectoryIntegrityCheck.verifyDirectoryStructure(cache, INDEXNAME); final String newFileName = fileName+".bak"; ((DirectoryExtensions)dir).renameFile(fileName, newFileName); assertReadByteWorkingCorrectly(dir, newFileName, fileSize); assertReadBytesWorkingCorrectly(dir, newFileName, fileSize, readBuffer); DirectoryIntegrityCheck.verifyDirectoryStructure(cache, INDEXNAME); List<String> fileList = Arrays.asList(dir.listAll()); assert fileList.contains(newFileName); assert !fileList.contains(fileName); }
Object ob3 = cache.get(new ChunkCacheKey(INDEXNAME, "World.txt", 1, BUFFER_SIZE, -1)); ((DirectoryExtensions)dir).renameFile("World.txt", "HelloWorld.txt"); assertNull(cache.get(new FileCacheKey(INDEXNAME, "World.txt", -1))); assertNull(cache.get(new ChunkCacheKey(INDEXNAME, "World.txt", 0, BUFFER_SIZE, -1)));