X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Ftest_code%2FTempFilesTest.java;fp=src%2Fbe%2Fnikiroo%2Futils%2Ftest_code%2FTempFilesTest.java;h=dad4cacb6e51044c131892e441b48ea248871153;hp=0000000000000000000000000000000000000000;hb=d46b7b96f94e88a776bcd2dfd756549ffb300cc9;hpb=c9994f27667bc421bcd448d39e55774fddf5c431 diff --git a/src/be/nikiroo/utils/test_code/TempFilesTest.java b/src/be/nikiroo/utils/test_code/TempFilesTest.java new file mode 100644 index 0000000..dad4cac --- /dev/null +++ b/src/be/nikiroo/utils/test_code/TempFilesTest.java @@ -0,0 +1,109 @@ +package be.nikiroo.utils.test_code; + +import java.io.File; +import java.io.IOException; + +import be.nikiroo.utils.TempFiles; +import be.nikiroo.utils.test.TestCase; +import be.nikiroo.utils.test.TestLauncher; + +class TempFilesTest extends TestLauncher { + public TempFilesTest(String[] args) { + super("TempFiles", args); + + addTest(new TestCase("Name is correct") { + @Override + public void test() throws Exception { + RootTempFiles files = new RootTempFiles("testy"); + try { + assertEquals("The root was not created", true, files + .getRoot().exists()); + assertEquals( + "The root is not prefixed with the expected name", + true, files.getRoot().getName().startsWith("testy")); + + } finally { + files.close(); + } + } + }); + + addTest(new TestCase("Clean after itself no use") { + @Override + public void test() throws Exception { + RootTempFiles files = new RootTempFiles("testy2"); + try { + assertEquals("The root was not created", true, files + .getRoot().exists()); + } finally { + files.close(); + assertEquals("The root was not deleted", false, files + .getRoot().exists()); + } + } + }); + + addTest(new TestCase("Clean after itself after usage") { + @Override + public void test() throws Exception { + RootTempFiles files = new RootTempFiles("testy3"); + try { + assertEquals("The root was not created", true, files + .getRoot().exists()); + files.createTempFile("test"); + } finally { + files.close(); + assertEquals("The root was not deleted", false, files + .getRoot().exists()); + assertEquals("The main root in /tmp was not deleted", + false, files.getRoot().getParentFile().exists()); + } + } + }); + + addTest(new TestCase("Temporary directories") { + @Override + public void test() throws Exception { + RootTempFiles files = new RootTempFiles("testy4"); + File file = null; + try { + File dir = files.createTempDir("test"); + file = new File(dir, "fanfan"); + file.createNewFile(); + assertEquals( + "Cannot create a file in a temporary directory", + true, file.exists()); + } finally { + files.close(); + if (file != null) { + assertEquals( + "A file created in a temporary directory should be deleted on close", + false, file.exists()); + } + assertEquals("The root was not deleted", false, files + .getRoot().exists()); + } + } + }); + } + + private class RootTempFiles extends TempFiles { + private File root = null; + + public RootTempFiles(String name) throws IOException { + super(name); + } + + public File getRoot() { + if (root != null) + return root; + return super.root; + } + + @Override + public synchronized void close() throws IOException { + root = super.root; + super.close(); + } + } +}