You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2010/06/16 11:36:08 UTC

svn commit: r955166 - /ant/core/trunk/src/tests/junit/org/apache/tools/ant/PropertyFileCLITest.java

Author: bodewig
Date: Wed Jun 16 09:36:08 2010
New Revision: 955166

URL: http://svn.apache.org/viewvc?rev=955166&view=rev
Log:
use a more robust approach that doesn't rely on stream redirections

Modified:
    ant/core/trunk/src/tests/junit/org/apache/tools/ant/PropertyFileCLITest.java

Modified: ant/core/trunk/src/tests/junit/org/apache/tools/ant/PropertyFileCLITest.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/ant/PropertyFileCLITest.java?rev=955166&r1=955165&r2=955166&view=diff
==============================================================================
--- ant/core/trunk/src/tests/junit/org/apache/tools/ant/PropertyFileCLITest.java (original)
+++ ant/core/trunk/src/tests/junit/org/apache/tools/ant/PropertyFileCLITest.java Wed Jun 16 09:36:08 2010
@@ -19,40 +19,44 @@
 package org.apache.tools.ant;
 
 import java.io.File;
+import java.io.FileReader;
 import java.io.FileWriter;
-import java.io.PrintStream;
 import junit.framework.TestCase;
+import org.apache.tools.ant.util.FileUtils;
 
 public class PropertyFileCLITest extends TestCase {
 
     public void testPropertyResolution() throws Exception {
-        File props = File.createTempFile("propertyfilecli", ".properties");
-        props.deleteOnExit();
-        FileWriter fw = new FileWriter(props);
-        fw.write("w=world\nmessage=Hello, ${w}\n");
-        fw.close();
-        File build = File.createTempFile("propertyfilecli", ".xml");
-        build.deleteOnExit();
-        fw = new FileWriter(build);
-        fw.write("<project><echo>${message}</echo></project>");
-        fw.close();
-        PrintStream sysOut = System.out;
-        StringBuffer sb = new StringBuffer();
+        FileUtils fu = FileUtils.getFileUtils();
+        File props = fu.createTempFile("propertyfilecli", ".properties",
+                                       null, true, true);
+        File build = fu.createTempFile("propertyfilecli", ".xml", null, true,
+                                       true);
+        File log = fu.createTempFile("propertyfilecli", ".log", null, true,
+                                     true);
+        FileWriter fw = null;
+        FileReader fr = null;
         try {
-            PrintStream out =
-                new PrintStream(new BuildFileTest.AntOutputStream(sb));
-            System.setOut(out);
+            fw = new FileWriter(props);
+            fw.write("w=world\nmessage=Hello, ${w}\n");
+            fw.close();
+            fw = new FileWriter(build);
+            fw.write("<project><echo>${message}</echo></project>");
+            fw.close();
+            fw = null;
             Main m = new NoExitMain();
             m.startAnt(new String[] {
                     "-propertyfile", props.getAbsolutePath(),
-                    "-f", build.getAbsolutePath()
+                    "-f", build.getAbsolutePath(),
+                    "-l", log.getAbsolutePath()
                 }, null, null);
+            String l = FileUtils.safeReadFully(fr = new FileReader(log));
+            assertTrue("expected log to contain 'Hello, world' but was " + l,
+                       l.indexOf("Hello, world") > -1);
         } finally {
-            System.setOut(sysOut);
+            FileUtils.close(fw);
+            FileUtils.close(fr);
         }
-        String log = sb.toString();
-        assertTrue("expected log to contain 'Hello, world' but was " + log,
-                   log.indexOf("Hello, world") > -1);
     }
 
     private static class NoExitMain extends Main {