package net.sourceforge.cruisecontrol.util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import net.sourceforge.cruisecontrol.CruiseControlException; import net.sourceforge.cruisecontrol.testutil.TestUtil.FilesToDelete; import junit.framework.TestCase; public class IOTest extends TestCase { private FilesToDelete filesToDelete = new FilesToDelete(); protected void tearDown() throws Exception { filesToDelete.delete(); } public void testWriteWorksWhenParentDirDoesntExist() throws CruiseControlException { final String nonExistentDirName = getNonExistentDirName(); filesToDelete.add(new File(nonExistentDirName)); final File file = new File(nonExistentDirName, "filename"); filesToDelete.add(file); IO.write(file, "Hello World!"); assertEquals("Hello World!", IO.readLines(file).get(0)); } private String getNonExistentDirName() { String name = new Date().getTime() + ""; while (new File(name).exists()) { name = new Date().getTime() + ""; } return name; } public void testReadText() throws IOException { File file = File.createTempFile("testReadText", "txt"); filesToDelete.add(file); // Populate the file. PrintWriter writer = new PrintWriter(file); try { for (int i = 0; i < 500; i++) { writer.write("abcdef"); } } finally { writer.close(); } // Read it back in. assertEquals(500 * 6, IO.readText(new FileInputStream(file)).length()); } }