public static File createRandomFileInDirectory(File rootFolder, long sizeInBytes) throws IOException { File newRandomFile = getRandomFilenameInDirectory(rootFolder); createRandomFile(newRandomFile, sizeInBytes); return newRandomFile; }
int newFileSize = (int) Math.round(1000.0 + Math.random() * 500000.0); createRandomFile(newFile, newFileSize); randomFiles.add(newFile);
@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 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 testCreateSymlink() throws Exception { if (!EnvironmentUtil.symlinksSupported()) { return; } File tempDir = TestFileUtil.createTempDirectoryInSystemTemp(); TestFileUtil.createRandomFile(new File(tempDir, "file1"), 1234); FileUtil.createSymlink("/some/target", new File(tempDir, "link-to-non-existing-target")); FileUtil.createSymlink(new File(tempDir, "file1").getAbsolutePath(), new File(tempDir, "link-to-file1"));; String linkTargetToFile1 = FileUtil.readSymlinkTarget(new File(tempDir, "link-to-file1")); String nonExistingSymlinkTarget = FileUtil.readSymlinkTarget(new File(tempDir, "link-to-non-existing-target")); assertEquals(new File(tempDir, "file1").getAbsolutePath(), linkTargetToFile1); assertEquals("/some/target", nonExistingSymlinkTarget); TestFileUtil.deleteDirectory(tempDir); }
@Test public void testFileExistsNormal() throws Exception { File tempDir = TestFileUtil.createTempDirectoryInSystemTemp(); TestFileUtil.createRandomFile(new File(tempDir, "file1"), 1234); assertTrue(FileUtil.exists(new File(tempDir, "file1"))); assertFalse(FileUtil.exists(new File(tempDir, "file2"))); TestFileUtil.deleteDirectory(tempDir); }
@Test public void testFileExistsSymlink() throws Exception { if (!EnvironmentUtil.symlinksSupported()) { return; } File tempDir = TestFileUtil.createTempDirectoryInSystemTemp(); TestFileUtil.createRandomFile(new File(tempDir, "file1"), 1234); Files.createSymbolicLink(new File(tempDir, "link-to-file1").toPath(), new File(tempDir, "file1").toPath()); Files.createSymbolicLink(new File(tempDir, "non-existing-target").toPath(), Paths.get("/does/not/exist")); String linkTargetToFile1 = FileUtil.readSymlinkTarget(new File(tempDir, "link-to-file1")); String nonExistingSymlinkTarget = FileUtil.readSymlinkTarget(new File(tempDir, "non-existing-target")); assertEquals(new File(tempDir, "file1").getAbsolutePath(), linkTargetToFile1); assertEquals("/does/not/exist", nonExistingSymlinkTarget); assertTrue(FileUtil.exists(new File(tempDir, "link-to-file1"))); assertTrue(FileUtil.exists(new File(tempDir, "non-existing-target"))); assertFalse(FileUtil.exists(new File(tempDir, "actually-non-existing-file-or-link"))); TestFileUtil.deleteDirectory(tempDir); }