]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/htmlreport/FullHtmlTreeReport.java
Manage with Maven
[gpl/argeo-slc.git] / org.argeo.slc / src / main / java / org / argeo / slc / core / test / tree / htmlreport / FullHtmlTreeReport.java
index 076da8f86dea7625243d21accca67731272a086a..4afd8dc634a5708fffcccebcf64257c3e9f5bd4b 100644 (file)
@@ -2,16 +2,17 @@ package org.argeo.slc.core.test.tree.htmlreport;
 \r
 import java.io.File;\r
 import java.io.FileOutputStream;\r
+import java.io.IOException;\r
 import java.io.InputStream;\r
 import java.text.SimpleDateFormat;\r
+import java.util.Comparator;\r
 import java.util.List;\r
+import java.util.SortedSet;\r
+import java.util.TreeSet;\r
 \r
-import org.dbunit.dataset.IDataSet;\r
-import org.dbunit.dataset.xml.FlatXmlDataSet;\r
-import org.hsqldb.lib.FileUtil;\r
-\r
-import org.apache.commons.io.FileUtils;\r
 import org.apache.commons.io.IOUtils;\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
 \r
 import org.argeo.slc.core.SlcException;\r
 import org.argeo.slc.core.structure.StructureAware;\r
@@ -30,7 +31,8 @@ import org.argeo.slc.dao.test.TestResultDao;
  * only the passed <code>TestResult</code>.\r
  */\r
 public class FullHtmlTreeReport implements TestReport, StructureAware {\r
-       SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");\r
+       private static final Log log = LogFactory.getLog(FullHtmlTreeReport.class);\r
+       SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");\r
 \r
        private TestResultDao testResultDao;\r
        private TreeSRegistryDao treeSRegistryDao;\r
@@ -58,11 +60,24 @@ public class FullHtmlTreeReport implements TestReport, StructureAware {
                        reportDir.mkdirs();\r
 \r
                        resourceToFile("index.html");\r
-                       resourceToFile("style.css");\r
 \r
                        ResultsList index = new ResultsList(this);\r
                        List<TestResult> list = testResultDao.listTestResults();\r
-                       for (TestResult testRes : list) {\r
+                       SortedSet<TestResult> sortedSet = new TreeSet<TestResult>(\r
+                                       new Comparator<TestResult>() {\r
+\r
+                                               public int compare(TestResult o1, TestResult o2) {\r
+                                                       if (o1.getCloseDate() == null\r
+                                                                       || o2.getCloseDate() == null)\r
+                                                               return 0;\r
+                                                       // inverse date order (last first)\r
+                                                       return o2.getCloseDate().compareTo(\r
+                                                                       o1.getCloseDate());\r
+                                               }\r
+\r
+                                       });\r
+                       sortedSet.addAll(list);\r
+                       for (TestResult testRes : sortedSet) {\r
                                TreeTestResult result = (TreeTestResult) testRes;\r
 \r
                                index.addTestResult(result);\r
@@ -71,6 +86,7 @@ public class FullHtmlTreeReport implements TestReport, StructureAware {
                        }\r
                        index.close();\r
                }\r
+               log.info("Generated HTML test result report to "+reportDir);\r
        }\r
 \r
        /**\r
@@ -120,6 +136,20 @@ public class FullHtmlTreeReport implements TestReport, StructureAware {
                return reportDir;\r
        }\r
 \r
+       void addStyles(StringBuffer buf) {\r
+               try {\r
+                       buf.append("<style type=\"text/css\">\n");\r
+                       InputStream in = FullHtmlTreeReport.class\r
+                                       .getResourceAsStream("style.css");\r
+                       String styles = IOUtils.toString(in);\r
+                       IOUtils.closeQuietly(in);\r
+                       buf.append(styles);\r
+                       buf.append("\n</style>\n");\r
+               } catch (IOException e) {\r
+                       throw new SlcException("Cannot load styles", e);\r
+               }\r
+       }\r
+\r
        private void resourceToFile(String resourceName) {\r
                try {\r
                        File file = new File(getReportDir() + File.separator + resourceName);\r