Index: IOTestCase.java
===================================================================
RCS file: /home/cvspublic/jakarta-commons-sandbox/io/src/test/org/apache/commons/io/IOTestCase.java,v
retrieving revision 1.3
diff -u -r1.3 IOTestCase.java
--- IOTestCase.java	28 Jan 2002 05:01:49 -0000	1.3
+++ IOTestCase.java	22 Feb 2002 18:42:28 -0000
@@ -65,22 +65,30 @@
 import junit.framework.Test;
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
+import junit.textui.TestRunner;
 
 
 /**
  * <p>
- *  Test Case for the IO classes. </p>
+ *  Test Case for the FileUtils class. </p>
  *
  * <p>
  *  Template for this stolen from Craigs BeanUtils PropertyUtilsTestCase
  * </p>
  *
  * @author <a href="mailto:sanders@apache.org">Scott Sanders</a>
+ * @author <a href="mailto:stevencaswell@yahoo.com">Steven Caswell</a>
  * @version $Revision: 1.3 $
  */
 
 public class IOTestCase extends TestCase {
 
+    protected String filename = "src/test/org/apache/commons/io/test.txt";
+    protected String filename2 = "src/test/org/apache/commons/io/test2.txt";
+    protected String filename3 = "src/test/org/apache/commons/io/test3.txt";
+    protected String sourcefile1 = "src/test/org/apache/commons/io/test.txt";
+    protected String sourcefile2 = "src/test/org/apache/commons/io/source2.txt";
+    protected String targetfile = "src/test/org/apache/commons/io/newtest.txt";
     /**
      * Construct a new instance of this test case.
      *
@@ -109,6 +117,9 @@
      * Tear down instance variables required by this test case.
      */
     public void tearDown() {
+        // clean up copied files
+        FileUtils.fileDelete(sourcefile2);
+        FileUtils.fileDelete(targetfile);
     }
 
 
@@ -116,30 +127,67 @@
      *  Test the FileUtils implementation.
      */
     public void testFileUtils() {
-        String filename = "src/test/org/apache/commons/io/test.txt";
-        String filename2 = "src/test/org/apache/commons/io/test2.txt";
         assertTrue("test.txt extension == \"txt\"", FileUtils.extension(filename).equals("txt"));
         assertTrue("Test file exists", FileUtils.fileExists(filename));
         assertTrue("Second test file does not exist", !FileUtils.fileExists(filename2));
         try {
             FileUtils.fileWrite(filename2, filename);
             assertTrue("Second file was written", FileUtils.fileExists(filename2));
-            String file2contents = FileUtils.fileRead(filename2);
-            assertTrue("Second file's contents correct", FileUtils.fileRead(filename2).equals(file2contents));
+            String file2contents = FileUtils.fileRead(filename2).toString();
+            assertTrue("Second file's contents correct", FileUtils.fileRead(filename2).toString().equals(file2contents));
             FileUtils.fileDelete(filename2);
             assertTrue("Second test file does not exist", !FileUtils.fileExists(filename2));
         } catch (Exception e) {
-            fail("Error reading or writing second test file: " + filename);
+            fail("Error reading or writing second test file: " + filename2);
         }
 
         try {
-            String contents = FileUtils.fileRead(filename);
+            String contents = FileUtils.fileRead(filename).toString();
             assertTrue("FileUtils.fileRead()", contents.equals("This is a test"));
         } catch (Exception e) {
             fail("Error loading file: " + filename);
         }
+        
+        assertTrue("Third test file does not exist", !FileUtils.fileExists(filename3));
+        try {
+            FileUtils.fileWrite(filename3, filename3.getBytes());
+            assertTrue("Third file was written", FileUtils.fileExists(filename3));
+            String file3contents = FileUtils.fileRead(filename3).toString();
+            assertTrue("Third file's contents correct", FileUtils.fileRead(filename3).toString().equals(file3contents));
+            FileUtils.fileDelete(filename3);
+            assertTrue("Third test file does not exist", !FileUtils.fileExists(filename3));
+        } catch (Exception e) {
+            fail("Error reading or writing third test file: " + filename3);
+        }
+        
+        try {
+            assertTrue("Source test file 1 exists", FileUtils.fileExists(sourcefile1));
+            assertTrue("Target test file does not exist", !FileUtils.fileExists(targetfile));
+            boolean result = FileUtils.fileCopy(sourcefile1, targetfile, false);
+            assertTrue("Copy result is true", result);
+            assertTrue("Target test file exists", FileUtils.fileExists(targetfile));
+            assertTrue("Target file's contents correct", FileUtils.fileRead(targetfile).toString().equals(FileUtils.fileRead(sourcefile1).toString()));
+            FileUtils.fileWrite(sourcefile2, "this is source file 2");
+            assertTrue("Source test file 2 contents correct", FileUtils.fileRead(sourcefile2).toString().equals("this is source file 2"));
+            result = FileUtils.fileCopy(sourcefile2, targetfile, false);
+            assertTrue("Copy result is false", result == false);
+            assertTrue("Target file's content correct", FileUtils.fileRead(targetfile).toString().equals(FileUtils.fileRead(sourcefile1).toString()));
+            result = FileUtils.fileCopy(sourcefile2, targetfile, true);
+            assertTrue("Copy result is true", result == true);
+            assertTrue("Target file's content correct", FileUtils.fileRead(targetfile).toString().equals("this is source file 2"));
+        } catch(Exception e) {
+            e.printStackTrace();
+            fail("Error testing copy file");
+        }
     }
 
+    /**
+     * Allows the test case to be run stand-alone
+     */
+    public static void main(String args[]) {
+        System.out.println("Testing io.FileUtils functionality");
+        TestRunner.run(suite());
+    }
 
 }
 

