return getFileSystem(uri); } finally { config.close();
@Test public void close() { final TConfig c1 = TConfig.push(); try { final TConfig c2 = TConfig.push(); try { c1.close(); fail(); } catch (IllegalStateException notTopElement) { assertSame(c2, TConfig.get()); } finally { c2.close(); } c2.close(); // should get ignored assertSame(c1, TConfig.get()); } finally { c1.close(); } c1.close(); // should get ignored }
return p.getFileSystem(); } finally { config.close();
return resolveSibling(fileName); } finally { config.close();
@edu.umd.cs.findbugs.annotations.SuppressWarnings("RV_RETURN_VALUE_IGNORED_BAD_PRACTICE") private void assertCreateNewEnhancedFile() throws IOException { final File file1 = new TFile(archive, "test.txt"); final File file2 = new TFile(file1, "test.txt"); TConfig config = TConfig.push(); try { config.setLenient(false); try { file1.createNewFile(); fail("Creating a file in a non-existent directory should throw an IOException!"); } catch (IOException expected) { } assertCreateNewFile(archive, file1, file2); } finally { config.close(); } assertCreateNewFile(archive, file1, file2); }
@edu.umd.cs.findbugs.annotations.SuppressWarnings("RV_RETURN_VALUE_IGNORED_BAD_PRACTICE") private void assertCreateNewEnhancedFile() throws IOException { final TPath file1 = archive.resolve("test.txt"); final TPath file2 = file1.resolve("test.txt"); TConfig config = TConfig.push(); try { config.setLenient(false); try { createFile(file1); fail("Creating a file in a non-existent directory should throw an IOException!"); } catch (IOException expected) { } assertCreateNewFile(archive, file1, file2); } finally { config.close(); } assertCreateNewFile(archive, file1, file2); }
@Test public final void testStrictFileOutputStream() throws IOException { TPath file = archive.resolve("test.txt"); TConfig config = TConfig.push(); try { config.setLenient(false); try { assertFileOutputStream(file); fail("Creating ghost directories should not be allowed when Path.isLenient() is false!"); } catch (IOException expected) { } createDirectory(archive); assertFileOutputStream(file); delete(archive); } finally { config.close(); } }
createDirectory(dir6); } finally { config.close();
@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 void testConfiguration() { // Create reference to the current directory. TPath directory = new TPath(""); // This is how you would detect a prospective archive file. TPath archive = directory.resolve("archive.mok"); TPath file; TConfig config = TConfig.push(); try { config.setArchiveDetector(TArchiveDetector.NULL); // Ignore prospective archive file here. file = directory.resolve("archive.mok"); } finally { config.close(); } // Once created, the prospective archive file detection does not change // because a TPath is immutable. assert archive.getArchiveDetector() == getArchiveDetector(); assert archive.isArchive(); assert file.getArchiveDetector() == TArchiveDetector.NULL; assert !file.isArchive(); } }
@Test public void standardUseCase() { TFile f1 = new TFile("file.mok"); assertFalse(f1.isArchive()); // Push a new current configuration on the thread local stack. TConfig c = TConfig.push(); try { // Change the inheritable thread local configuration. c.setArchiveDetector( new TArchiveDetector("mok", new MockArchiveDriver())); // Use the inheritable thread local configuration. TFile f2 = new TFile("file.mok"); assertTrue(f2.isArchive()); // Do some I/O here. } finally { // Pop the configuration off the inheritable thread local stack. c.close(); } }
assertThat(c.getOutputPreferences(), is(BitField.of(CREATE_PARENTS))); } finally { c.close();
assertTrue(dir6.mkdir()); } finally { config.close();