You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by ti...@apache.org on 2010/01/05 13:19:53 UTC

svn commit: r896022 - /incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java

Author: tillw
Date: Tue Jan  5 12:19:52 2010
New Revision: 896022

URL: http://svn.apache.org/viewvc?rev=896022&view=rev
Log:
- some refactoring

Modified:
    incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java

Modified: incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java?rev=896022&r1=896021&r2=896022&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java (original)
+++ incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java Tue Jan  5 12:19:52 2010
@@ -51,9 +51,10 @@
 
     private PrintWriter out;
     
-    private File resultsFile;
+    private File reportFile;
+    private File resultDir;
 
-    public HTMLFileReporterImpl(File file) throws IOException {
+    public HTMLFileReporterImpl(File file) {
         results = new ArrayList<TestCaseResult>();
         count = 0;
         userErrors = 0;
@@ -61,15 +62,7 @@
         startTime = -1;
         exDistribution = new HashMap<Class<?>, Integer>();
         stDistribution = new HashMap<TestCaseResult.State, Integer>();
-        if (file != null) {
-            out = new PrintWriter(file);
-            String fileName = file.getName();
-            int dot = file.getName().lastIndexOf('.');
-            String resultsFileName = (dot < 0 ? fileName : fileName.substring(0, dot)) + "_results.html";
-            resultsFile = file.getParent() != null 
-                ? new File(file.getParent() + File.separator + resultsFileName)
-                : new File(resultsFileName);
-        }
+        reportFile = file;
     }
 
     @Override
@@ -103,25 +96,40 @@
 
     @Override
     public void close() {
-        if (out != null) {
-            if (resultsFile != null) {
-                try {
-                    FileWriter resultsWriter = new FileWriter(resultsFile);
-                    PrintWriter resultsReport = new PrintWriter(new BufferedWriter(resultsWriter));
-                    writeHTML(out, resultsReport, resultsFile.toURI());
-                    resultsReport.flush();
-                    resultsWriter.close();
-                } catch (IOException e) {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                }
-            } else {
-                writeHTML(out);
+        if (reportFile != null) {
+            try {
+                out = new PrintWriter(reportFile);
+                resultDir = createResultDir(reportFile);
+                ensureDir(resultDir);
+                File resultFile = new File(resultDir.getAbsolutePath() + File.separator + "index.html");
+                FileWriter resultWriter = new FileWriter(resultFile);
+                PrintWriter resultReport = new PrintWriter(new BufferedWriter(resultWriter));
+                writeHTML(out, resultReport, resultFile.toURI());
+                resultReport.flush();
+                resultWriter.close();
+                out.flush();
+            } catch (IOException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
             }
-            out.flush();
         }
     }
     
+    private static File createResultDir(File file) {
+        String fileName = file.getName();
+        int dot = file.getName().lastIndexOf('.');
+        String resultDirName = (dot < 0 ? fileName : fileName.substring(0, dot)) + "_results";
+        return file.getParent() != null 
+            ? new File(file.getParent() + File.separator + resultDirName)
+            : new File(resultDirName);
+    }
+    
+    private static void ensureDir(File dir) throws IOException {
+        if (!dir.isDirectory() && !dir.mkdirs()) {
+            throw new IOException("could not create dir " + dir);
+        }
+    }
+
     public void writeHTML(PrintWriter out) {
         writeHTML(out, null, null);
     }