@Test public final void testStrictFileOutputStream() throws IOException { TFile file = new TFile(archive, "test.txt"); TConfig config = TConfig.push(); try { config.setLenient(false); try { assertFileOutputStream(file); fail("Creating ghost directories should not be allowed when File.isLenient() is false!"); } catch (FileNotFoundException expected) { } assertTrue(archive.mkdir()); assertFileOutputStream(file); archive.rm(); } finally { config.close(); } }
@Test public final void testLenientFileOutputStream() throws IOException { TFile file = new TFile(archive, "dir/inner" + getSuffix() + "/dir/test.txt"); assertFileOutputStream(file); try { archive.rm(); fail("directory not empty"); } catch (IOException expected) { } umount(); // allow external modifications! TFile.rm(archive.toNonArchiveFile()); // use plain file to delete instead! assertFalse(archive.exists()); assertFalse(archive.isDirectory()); assertFalse(archive.isFile()); assertEquals(0, archive.length()); }
private void assertDirectoryTree(TFile basePath, TFile reversePath) throws IOException { if (reversePath == null) { // We're at the leaf of the directory tree. final TFile test = new TFile(basePath, "test.txt"); //testCreateNewFile(basePath, test); assertFileOutputStream(test); return; } final TFile member = new TFile(basePath, reversePath.getName()); final boolean created = member.mkdir(); final TFile children = reversePath.getParentFile(); assertDirectoryTree(member, children); assertListFiles(basePath, member.getName()); assertTrue(member.exists()); assertTrue(member.isDirectory()); assertFalse(member.isFile()); if (member.isArchive()) assertEquals(0, member.length()); if (created) { member.rm(); assertFalse(member.exists()); assertFalse(member.isDirectory()); assertFalse(member.isFile()); assertEquals(0, member.length()); } }