You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2006/03/31 04:09:54 UTC

svn commit: r390302 - in /maven/plugins/trunk: maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/ maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/ maven-surefire-report-plugin/src/test/java/org...

Author: brett
Date: Thu Mar 30 18:09:52 2006
New Revision: 390302

URL: http://svn.apache.org/viewcvs?rev=390302&view=rev
Log:
clean up surefire report and make xref location consistent with checkstyle

Modified:
    maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java
    maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/ReportTestCase.java
    maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/ReportTestSuite.java
    maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java
    maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportMojo.java
    maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java
    maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/ReportTestCaseTest.java
    maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/ReportTestSuiteTest.java
    maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportParserTest.java

Modified: maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java?rev=390302&r1=390301&r2=390302&view=diff
==============================================================================
--- maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java (original)
+++ maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java Thu Mar 30 18:09:52 2006
@@ -586,8 +586,12 @@
         generator.setCheckstyleModuleFactory( moduleFactory );
         if ( linkXRef )
         {
-            String relativePath = PathTool.getRelativePath( getOutputDirectory(), xrefLocation.getAbsolutePath() ) +
-                "/" + xrefLocation.getName();
+            String relativePath = PathTool.getRelativePath( getOutputDirectory(), xrefLocation.getAbsolutePath() );
+            if ( StringUtils.isEmpty( relativePath ) )
+            {
+                relativePath = ".";
+            }
+            relativePath = relativePath + "/" + xrefLocation.getName();
             if ( xrefLocation.exists() )
             {
                 // XRef was already generated by manual execution of a lifecycle binding

Modified: maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/ReportTestCase.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/ReportTestCase.java?rev=390302&r1=390301&r2=390302&view=diff
==============================================================================
--- maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/ReportTestCase.java (original)
+++ maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/ReportTestCase.java Thu Mar 30 18:09:52 2006
@@ -17,21 +17,23 @@
  */
 
 import java.util.HashMap;
+import java.util.Map;
 
 public class ReportTestCase
 {
     private String fullClassName;
+
     private String className;
+
     private String fullName;
+
     private String name;
+
     private float time;
-    private HashMap failure;
 
-    public ReportTestCase(  )
-    {
-    }
+    private Map failure;
 
-    public String getName(  )
+    public String getName()
     {
         return name;
     }
@@ -41,7 +43,7 @@
         this.name = name;
     }
 
-    public String getFullClassName(  )
+    public String getFullClassName()
     {
         return fullClassName;
     }
@@ -51,7 +53,7 @@
         this.fullClassName = name;
     }
 
-    public String getClassName(  )
+    public String getClassName()
     {
         return className;
     }
@@ -61,7 +63,7 @@
         this.className = name;
     }
 
-    public float getTime(  )
+    public float getTime()
     {
         return time;
     }
@@ -71,17 +73,12 @@
         this.time = time;
     }
 
-    public HashMap getFailure(  )
+    public Map getFailure()
     {
         return failure;
     }
 
-    public void setFailure( HashMap failure )
-    {
-        this.failure = failure;
-    }
-
-    public String getFullName(  )
+    public String getFullName()
     {
         return fullName;
     }
@@ -89,5 +86,12 @@
     public void setFullName( String fullName )
     {
         this.fullName = fullName;
+    }
+
+    public void addFailure( String message, String type )
+    {
+        failure = new HashMap();
+        failure.put( "message", message );
+        failure.put( "type", type );
     }
 }

Modified: maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/ReportTestSuite.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/ReportTestSuite.java?rev=390302&r1=390301&r2=390302&view=diff
==============================================================================
--- maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/ReportTestSuite.java (original)
+++ maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/ReportTestSuite.java Thu Mar 30 18:09:52 2006
@@ -16,93 +16,92 @@
  * limitations under the License.
  */
 
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
 import java.io.File;
+import java.io.IOException;
 import java.text.NumberFormat;
+import java.text.ParseException;
 import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import java.util.StringTokenizer;
 
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
 public class ReportTestSuite
     extends DefaultHandler
 {
     private List testCases;
+
     private int numberOfErrors;
+
     private int numberOfFailures;
+
     private int numberOfTests;
+
     private String name;
+
     private String fullClassName;
+
     private String packageName;
+
     private float timeElapsed;
-    private NumberFormat numberFormat;
+
+    private NumberFormat numberFormat = NumberFormat.getInstance();
+
+    /**
+     * @noinspection StringBufferField
+     */
     private StringBuffer currentElement;
-    String currentName;
-    ReportTestCase testCase;
 
-    public ReportTestSuite(  )
-    {
-    }
+    private ReportTestCase testCase;
 
-    public ReportTestSuite( String xmlPath )
+    public void parse( String xmlPath )
+        throws ParserConfigurationException, SAXException, IOException
     {
-        numberFormat = NumberFormat.getInstance();
+        SAXParserFactory factory = SAXParserFactory.newInstance();
 
-        SAXParserFactory factory = SAXParserFactory.newInstance(  );
- 
-        try
-        {
-            SAXParser saxParser = factory.newSAXParser(  );
+        SAXParser saxParser = factory.newSAXParser();
 
-            saxParser.parse( new File( xmlPath ),
-                             this );
-        } catch ( Throwable t )
-        {
-            // TODO should this break the build?
-            Exception e = new Exception( "Failure to parse file at: " + new File( xmlPath ), t );
-            
-            e.printStackTrace(  );
-        }
+        saxParser.parse( new File( xmlPath ), this );
     }
 
-    public void startElement( String namespaceURI, String sName, String qName, Attributes attrs )
-                      throws SAXException
+    public void startElement( String uri, String localName, String qName, Attributes attributes )
+        throws SAXException
     {
         try
         {
-            if ( qName.equals( "testsuite" ) )
+            if ( "testsuite".equals( qName ) )
             {
-                numberOfErrors = Integer.parseInt( attrs.getValue( "errors" ) );
-    
-                numberOfFailures = Integer.parseInt( attrs.getValue( "failures" ) );
-    
-                numberOfTests = Integer.parseInt( attrs.getValue( "tests" ) );
-    
-                Number time = numberFormat.parse( attrs.getValue( "time" ) );
-                
+                numberOfErrors = Integer.parseInt( attributes.getValue( "errors" ) );
+
+                numberOfFailures = Integer.parseInt( attributes.getValue( "failures" ) );
+
+                numberOfTests = Integer.parseInt( attributes.getValue( "tests" ) );
+
+                Number time = numberFormat.parse( attributes.getValue( "time" ) );
+
                 timeElapsed = time.floatValue();
 
                 //check if group attribute is existing
-                if( attrs.getValue( "group" ) != null && !attrs.getValue( "group" ).equals( "" ) )
+                if ( attributes.getValue( "group" ) != null && !"".equals( attributes.getValue( "group" ) ) )
                 {
-                    packageName = attrs.getValue( "group" );
+                    packageName = attributes.getValue( "group" );
 
-                    name = attrs.getValue( "name" );
+                    name = attributes.getValue( "name" );
 
                     fullClassName = packageName + "." + name;
                 }
                 else
                 {
-                    fullClassName = attrs.getValue( "name" );
+                    fullClassName = attributes.getValue( "name" );
 
-                    name = fullClassName.substring( fullClassName.lastIndexOf( "." ) + 1,
-                                            fullClassName.length(  ) );
+                    name = fullClassName.substring( fullClassName.lastIndexOf( "." ) + 1, fullClassName.length() );
 
                     int lastDotPosition = fullClassName.lastIndexOf( "." );
                     if ( lastDotPosition < 0 )
@@ -116,97 +115,79 @@
                     }
                 }
 
-                testCases = new ArrayList(  );
-            } else if ( qName.equals( "testcase" ) )
+                testCases = new ArrayList();
+            }
+            else if ( "testcase".equals( qName ) )
             {
-                currentElement = new StringBuffer(  );
-    
-                testCase = new ReportTestCase(  );
+                currentElement = new StringBuffer();
+
+                testCase = new ReportTestCase();
 
                 testCase.setFullClassName( fullClassName );
 
-                testCase.setName( attrs.getValue( "name" ) );
+                testCase.setName( attributes.getValue( "name" ) );
 
                 testCase.setClassName( name );
-    
-                Number time = numberFormat.parse( attrs.getValue( "time" ) );
-                
+
+                Number time = numberFormat.parse( attributes.getValue( "time" ) );
+
                 testCase.setTime( time.floatValue() );
-    
-                testCase.setFullName( packageName + "." + name + "." + testCase.getName(  ) );
-            } else if ( qName.equals( "failure" ) )
+
+                testCase.setFullName( packageName + "." + name + "." + testCase.getName() );
+            }
+            else if ( "failure".equals( qName ) )
             {
-                HashMap failure = new HashMap(  );
-    
-                testCase.setFailure( failure );
-    
-                failure.put( "message",
-                             attrs.getValue( "message" ) );
-    
-                failure.put( "type",
-                             attrs.getValue( "type" ) );
-            } else if ( qName.equals( "error" ) )
+                testCase.addFailure( attributes.getValue( "message" ), attributes.getValue( "type" ) );
+            }
+            else if ( "error".equals( qName ) )
             {
-                HashMap error = new HashMap(  );
-    
-                testCase.setFailure( error );
-
-                error.put( "message",
-                           attrs.getValue( "message" ) );
-    
-                error.put( "type",
-                           attrs.getValue( "type" ) );
+                testCase.addFailure( attributes.getValue( "message" ), attributes.getValue( "type" ) );
             }
         }
-        catch (Exception e)
+        catch ( ParseException e )
         {
-            throw new SAXException(e);
+            throw new SAXException( e.getMessage(), e );
         }
     }
 
-    public void endElement( String namespaceURI, String sName, String qName )
-                    throws SAXException
+    public void endElement( String uri, String localName, String qName )
+        throws SAXException
     {
-        if ( qName.equals( "testcase" ) )
+        if ( "testcase".equals( qName ) )
         {
             testCases.add( testCase );
-        } else if ( qName.equals( "failure" ) )
+        }
+        else if ( "failure".equals( qName ) )
         {
-            HashMap failure = testCase.getFailure(  );
+            Map failure = testCase.getFailure();
 
-            failure.put( "detail",
-                         parseCause( currentElement.toString() ) );
-        } else if ( qName.equals( "error" ) )
+            failure.put( "detail", parseCause( currentElement.toString() ) );
+        }
+        else if ( "error".equals( qName ) )
         {
-            HashMap error = testCase.getFailure(  );
+            Map error = testCase.getFailure();
 
-            error.put( "detail",
-                       parseCause( currentElement.toString() ) );
+            error.put( "detail", parseCause( currentElement.toString() ) );
         }
     }
 
-    public void characters( char[] buf, int offset, int len )
-                    throws SAXException
+    public void characters( char[] ch, int start, int length )
+        throws SAXException
     {
-        String s = new String( buf, offset, len );
+        String s = new String( ch, start, length );
 
-        if ( ! s.trim(  ).equals( "" ) )
+        if ( ! "".equals( s.trim() ) )
         {
             currentElement.append( s );
         }
     }
 
-    public List getTestCases(  )
+    public List getTestCases()
     {
         return this.testCases;
     }
 
-    public void setTestCases( List TestCases )
-    {
-        this.testCases = TestCases;
-    }
-
-    public int getNumberOfErrors(  )
+    public int getNumberOfErrors()
     {
         return numberOfErrors;
     }
@@ -216,7 +197,7 @@
         this.numberOfErrors = numberOfErrors;
     }
 
-    public int getNumberOfFailures(  )
+    public int getNumberOfFailures()
     {
         return numberOfFailures;
     }
@@ -226,7 +207,7 @@
         this.numberOfFailures = numberOfFailures;
     }
 
-    public int getNumberOfTests(  )
+    public int getNumberOfTests()
     {
         return numberOfTests;
     }
@@ -236,7 +217,7 @@
         this.numberOfTests = numberOfTests;
     }
 
-    public String getName(  )
+    public String getName()
     {
         return name;
     }
@@ -246,7 +227,7 @@
         this.name = name;
     }
 
-    public String getFName(  )
+    public String getFName()
     {
         return name;
     }
@@ -256,7 +237,7 @@
         this.name = name;
     }
 
-    public String getPackageName(  )
+    public String getPackageName()
     {
         return packageName;
     }
@@ -266,7 +247,7 @@
         this.packageName = packageName;
     }
 
-    public float getTimeElapsed(  )
+    public float getTimeElapsed()
     {
         return this.timeElapsed;
     }
@@ -278,10 +259,9 @@
 
     private List parseCause( String detail )
     {
-        String fullName = testCase.getFullName(  );
+        String fullName = testCase.getFullName();
         String name = fullName.substring( fullName.lastIndexOf( "." ) + 1 );
-        List parsedDetail = parseCause( detail, name );
-        return parsedDetail;
+        return parseCause( detail, name );
     }
 
     private List parseCause( String detail, String compareTo )
@@ -302,4 +282,8 @@
         return parsedDetail;
     }
 
+    public void setTestCases( List testCases )
+    {
+        this.testCases = Collections.unmodifiableList( testCases );
+    }
 }

Modified: maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java?rev=390302&r1=390301&r2=390302&view=diff
==============================================================================
--- maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java (original)
+++ maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java Thu Mar 30 18:09:52 2006
@@ -18,7 +18,6 @@
 
 import org.apache.maven.reporting.MavenReportException;
 import org.codehaus.doxia.sink.Sink;
-import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
 import java.text.NumberFormat;
@@ -58,30 +57,30 @@
 
         sink.text( bundle.getString( "report.surefire.description" ) );
 
+        StringBuffer str = new StringBuffer();
+        str.append( "<script type=\"text/javascript\">\n" );
+        str.append( "function toggleDisplay(elementId) {\n" );
+        str.append( " var elm = document.getElementById(elementId + 'error');\n" );
+        str.append( " if (elm && typeof elm.style != \"undefined\") {\n" );
+        str.append( " if (elm.style.display == \"none\") {\n" );
+        str.append( " elm.style.display = \"\";\n" );
+        str.append( " document.getElementById(elementId + 'off').style.display = \"none\";\n" );
+        str.append( " document.getElementById(elementId + 'on').style.display = \"inline\";\n" );
+        str.append( " }" );
+        str.append( " else if (elm.style.display == \"\") {" );
+        str.append( " elm.style.display = \"none\";\n" );
+        str.append( " document.getElementById(elementId + 'off').style.display = \"inline\";\n" );
+        str.append( " document.getElementById(elementId + 'on').style.display = \"none\";\n" );
+        str.append( " } \n" );
+        str.append( " } \n" );
+        str.append( " }\n" );
+        str.append( "</script>" );
+        sink.rawText( str.toString() );
+
         sink.head_();
 
         sink.body();
 
-        StringBuffer str = new StringBuffer();
-        str.append("<script type=\"text/javascript\">\n")
-        .append("function toggleDisplay(elementId) {\n")
-        .append(" var elm = document.getElementById(elementId + 'error');\n")
-        .append(" if (elm && typeof elm.style != \"undefined\") {\n")
-        .append(" if (elm.style.display == \"none\") {\n")
-        .append(" elm.style.display = \"\";\n")
-        .append(" document.getElementById(elementId + 'off').style.display = \"none\";\n")
-        .append(" document.getElementById(elementId + 'on').style.display = \"inline\";\n")
-        .append(" }")
-        .append(" else if (elm.style.display == \"\") {")
-        .append(" elm.style.display = \"none\";\n")
-        .append(" document.getElementById(elementId + 'off').style.display = \"inline\";\n")
-        .append(" document.getElementById(elementId + 'on').style.display = \"none\";\n")
-        .append(" } \n")
-        .append(" } \n")
-        .append(" }\n")
-        .append("</script>");
-        sink.rawText(str.toString());
-
         constructSummarySection( bundle, sink );
 
         Map suitePackages = report.getSuitesGroupByPackage( testSuites );
@@ -393,20 +392,17 @@
 
                             sinkLink( sink, testCase.getName(), "#" + testCase.getFullName() );
 
-                            sink.rawText("  <div class=\"detailToggle\" style=\"display:inline\">");
+                            sink.rawText( "  <div class=\"detailToggle\" style=\"display:inline\">" );
 
-                            sink.link("javascript:toggleDisplay('" + testCase.getName()
-                                    + "');");
+                            sink.link( "javascript:toggleDisplay('" + testCase.getName() + "');" );
 
-                            sink.rawText("<span style=\"display: inline;\" "
-                                    + "id=\"" + testCase.getName() + "off\">+</span><span id=\""
-                                    + testCase.getName() + "on\" "
-                                    + "style=\"display: none;\">-</span> ");
-                            sink.text("[ Detail ]");
+                            sink.rawText( "<span style=\"display: inline;\" " + "id=\"" + testCase.getName() +
+                                "off\">+</span><span id=\"" + testCase.getName() + "on\" " +
+                                "style=\"display: none;\">-</span> " );
+                            sink.text( "[ Detail ]" );
                             sink.link_();
 
-                            sink.rawText("</div>");
-
+                            sink.rawText( "</div>" );
 
                             sink.tableCell_();
                         }
@@ -419,42 +415,44 @@
 
                         sink.tableRow_();
 
-                        if (failure != null)
-                         {
+                        if ( failure != null )
+                        {
                             sink.tableRow();
 
-                            sinkCell(sink, "");
-                            sinkCell(sink, (String)failure.get("message"));
-                            sinkCell(sink, "");
+                            sinkCell( sink, "" );
+                            sinkCell( sink, (String) failure.get( "message" ) );
+                            sinkCell( sink, "" );
                             sink.tableRow_();
 
-                            sink.tableRow();
-                            sinkCell(sink, "");
+                            List detail = (List) failure.get( "detail" );
+                            if ( detail != null )
+                            {
 
-                            sink.tableCell();
-                            sink.rawText("  <div id=\"" + testCase.getName()
-                                    + "error\" style=\"display:none;\">");
+                                sink.tableRow();
+                                sinkCell( sink, "" );
 
-                            List detail = (List)failure.get("detail");
-                            if (detail != null)
-                            {
+                                sink.tableCell();
+                                sink.rawText(
+                                    "  <div id=\"" + testCase.getName() + "error\" style=\"display:none;\">" );
 
                                 Iterator it = detail.iterator();
 
-                                while(it.hasNext())
+                                sink.verbatim( true );
+                                while ( it.hasNext() )
                                 {
-                                   sink.rawText(it.next().toString());
-                                   sink.lineBreak();
+                                    sink.text( it.next().toString() );
+                                    sink.lineBreak();
                                 }
-                            }
+                                sink.verbatim_();
 
-                            sink.rawText("</div>");
-                            sink.tableCell_();
+                                sink.rawText( "</div>" );
+                                sink.tableCell_();
 
-                            sinkCell(sink, "");
+                                sinkCell( sink, "" );
 
-                            sink.tableRow_();
-                         }
+                                sink.tableRow_();
+                            }
+                        }
                     }
                 }
 
@@ -523,55 +521,53 @@
 
                 sink.tableRow_();
 
-                sink.rawText( "  <div id=\"" + tCase.getName() + "error\" >" );
-
-                sink.rawText( "</div>" );
-
-                if ( !type.startsWith( "junit.framework" ) )
+                List detail = (List) failure.get( "detail" );
+                if ( detail != null )
                 {
-                    List detail = (List) failure.get( "detail" );
-                    if ( detail != null )
-                    {
-                        Iterator it = detail.iterator();
+                    Iterator it = detail.iterator();
 
-                        boolean firstLine = true;
+                    boolean firstLine = true;
 
-                        String techMessage = "";
-                        while ( it.hasNext() )
+                    String techMessage = "";
+                    while ( it.hasNext() )
+                    {
+                        techMessage = it.next().toString();
+                        if ( firstLine )
                         {
-                            techMessage = it.next().toString();
-                            if ( firstLine )
-                            {
-                                firstLine = false;
-                            }
-                            else
-                            {
-                                sink.text( "    " );
-                            }
+                            firstLine = false;
                         }
+                        else
+                        {
+                            sink.text( "    " );
+                        }
+                    }
 
-                        sink.tableRow();
-                        sinkCell( sink, "" );
+                    sink.tableRow();
 
-                        sink.tableCell();
-                        if ( xrefLocation != null )
-                        {
-                            String path = tCase.getFullClassName().replace( '.', '/' );
+                    sinkCell( sink, "" );
 
-                            sink.link( xrefLocation + "/" + path + ".html#" +
-                                getErrorLineNumber( tCase.getFullName() , techMessage ));
-                        }
-                        sink.text( tCase.getFullClassName() + ":" +
-                            getErrorLineNumber( tCase.getFullName() , techMessage ) );
+                    sink.tableCell();
+                    sink.rawText( "  <div id=\"" + tCase.getName() + "error\" >" );
 
-                        if ( xrefLocation != null )
-                        {
-                            sink.link_();
-                        }
-                        sink.tableCell_();
+                    if ( xrefLocation != null )
+                    {
+                        String path = tCase.getFullClassName().replace( '.', '/' );
 
-                        sink.tableRow_();
+                        sink.link( xrefLocation + "/" + path + ".html#" +
+                            getErrorLineNumber( tCase.getFullName(), techMessage ) );
                     }
+                    sink.text(
+                        tCase.getFullClassName() + ":" + getErrorLineNumber( tCase.getFullName(), techMessage ) );
+
+                    if ( xrefLocation != null )
+                    {
+                        sink.link_();
+                    }
+                    sink.rawText( "</div>" );
+
+                    sink.tableCell_();
+
+                    sink.tableRow_();
                 }
             }
 
@@ -587,10 +583,10 @@
 
         String lineNo = "";
 
-        while( tokenizer.hasMoreTokens() )
+        while ( tokenizer.hasMoreTokens() )
         {
             String token = tokenizer.nextToken();
-            if( token.startsWith( className ) )
+            if ( token.startsWith( className ) )
             {
                 int idx = token.indexOf( ":" );
                 lineNo = token.substring( idx + 1, token.indexOf( ")" ) );

Modified: maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportMojo.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportMojo.java?rev=390302&r1=390301&r2=390302&view=diff
==============================================================================
--- maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportMojo.java (original)
+++ maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportMojo.java Thu Mar 30 18:09:52 2006
@@ -16,31 +16,28 @@
  * limitations under the License.
  */
 
-import java.io.File;
-import java.io.IOException;
-import java.util.Locale;
-import java.util.ResourceBundle;
-import java.util.List;
-import java.util.Iterator;
-import java.util.Collections;
-
 import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.reporting.AbstractMavenReport;
 import org.apache.maven.reporting.MavenReportException;
-import org.apache.maven.model.ReportPlugin;
-
 import org.codehaus.doxia.site.renderer.SiteRenderer;
+import org.codehaus.plexus.util.PathTool;
 import org.codehaus.plexus.util.StringUtils;
-import org.codehaus.plexus.util.FileUtils;
+
+import java.io.File;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.ResourceBundle;
 
 
 /**
- * @description  Creates a nicely formatted Surefire Test Report in html format
- * @goal         report
- * @execute      phase="test" lifecycle="surefire"
- * @author       <a href="mailto:jruiz@exist.com">Johnny R. Ruiz III</a>
- * @version      $Id$
+ * Creates a nicely formatted Surefire Test Report in html format.
+ *
+ * @author <a href="mailto:jruiz@exist.com">Johnny R. Ruiz III</a>
+ * @version $Id$
+ * @goal report
+ * @execute phase="test" lifecycle="surefire"
  */
 public class SurefireReportMojo
     extends AbstractMavenReport
@@ -49,7 +46,6 @@
      * Location where generated html will be created.
      *
      * @parameter expression="${project.build.directory}/site "
-     *
      */
     private String outputDirectory;
 
@@ -94,52 +90,66 @@
     private String outputName;
 
     /**
-     * Location of the Xrefs to link
+     * Location of the Xrefs to link.
      *
-     * @parameter expression="${project.build.directory}/site/xref-test"
+     * @parameter default-value="${project.build.directory}/site/xref-test"
      */
-    private String xrefLocation;
+    private File xrefLocation;
 
     /**
-     * @parameter expression="${linkXref}" default-value="true"
+     * Whether to link the XRef if found.
+     *
+     * @parameter expression="${linkXRef}" default-value="true"
      */
-    private boolean linkXref;
+    private boolean linkXRef;
 
     public void executeReport( Locale locale )
-                       throws MavenReportException
+        throws MavenReportException
     {
-        SurefireReportGenerator report = new SurefireReportGenerator( reportsDirectory,
-                                                                      locale, showSuccess,
-                                                                      doXref() ? xrefLocation : null);
+        SurefireReportGenerator report =
+            new SurefireReportGenerator( reportsDirectory, locale, showSuccess, determineXrefLocation() );
 
-        try
-        {
-            report.doGenerateReport( getBundle( locale ),
-                                     getSink(  ) );
-        }
-        catch ( Exception e )
-        {
-            throw new MavenReportException( "Failed to generate report", e );
-        }
+        report.doGenerateReport( getBundle( locale ), getSink() );
     }
 
-    private boolean doXref()
+    private String determineXrefLocation()
     {
-        List reportPlugins = getProject().getReportPlugins();
-
-        boolean retValue = false;
+        String location = null;
 
-        for( Iterator iter = reportPlugins.iterator(); iter.hasNext(); )
+        if ( linkXRef )
         {
-            ReportPlugin plugin = ( ReportPlugin ) iter.next();
+            String relativePath = PathTool.getRelativePath( outputDirectory, xrefLocation.getAbsolutePath() );
+            if ( StringUtils.isEmpty( relativePath ) )
+            {
+                relativePath = ".";
+            }
+            relativePath = relativePath + "/" + xrefLocation.getName();
+            if ( xrefLocation.exists() )
+            {
+                // XRef was already generated by manual execution of a lifecycle binding
+                location = relativePath;
+            }
+            else
+            {
+                // Not yet generated - check if the report is on its way
+                for ( Iterator reports = project.getReportPlugins().iterator(); reports.hasNext(); )
+                {
+                    ReportPlugin report = (ReportPlugin) reports.next();
+
+                    String artifactId = report.getArtifactId();
+                    if ( "maven-jxr-plugin".equals( artifactId ) || "jxr-maven-plugin".equals( artifactId ) )
+                    {
+                        location = relativePath;
+                    }
+                }
+            }
 
-            if( plugin.getArtifactId().equals( "maven-jxr-plugin" ) ||
-                plugin.getArtifactId().equals( "jxr-maven-plugin" ) )
+            if ( location == null )
             {
-                retValue = true;
+                getLog().warn( "Unable to locate Test Source XRef to link to - DISABLED" );
             }
         }
-        return retValue;
+        return location;
     }
 
     public String getName( Locale locale )
@@ -152,31 +162,29 @@
         return getBundle( locale ).getString( "report.surefire.description" );
     }
 
-    protected SiteRenderer getSiteRenderer(  )
+    protected SiteRenderer getSiteRenderer()
     {
         return siteRenderer;
     }
 
-    protected MavenProject getProject(  )
+    protected MavenProject getProject()
     {
         return project;
     }
 
-    public String getOutputName(  )
+    public String getOutputName()
     {
         return outputName;
     }
 
-    protected String getOutputDirectory(  )
+    protected String getOutputDirectory()
     {
         return outputDirectory;
     }
 
     private ResourceBundle getBundle( Locale locale )
     {
-        return ResourceBundle.getBundle( "surefire-report",
-                                         locale,
-                                         this.getClass(  ).getClassLoader(  ) );
+        return ResourceBundle.getBundle( "surefire-report", locale, this.getClass().getClassLoader() );
     }
 
     /**

Modified: maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java?rev=390302&r1=390301&r2=390302&view=diff
==============================================================================
--- maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java (original)
+++ maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java Thu Mar 30 18:09:52 2006
@@ -16,17 +16,21 @@
  * limitations under the License.
  */
 
+import org.apache.maven.reporting.MavenReportException;
+import org.codehaus.plexus.util.DirectoryScanner;
+import org.codehaus.plexus.util.StringUtils;
+import org.xml.sax.SAXException;
+
+import javax.xml.parsers.ParserConfigurationException;
 import java.io.File;
+import java.io.IOException;
 import java.text.NumberFormat;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.ListIterator;
-import java.util.Map;
 import java.util.Locale;
-
-import org.codehaus.plexus.util.DirectoryScanner;
-import org.codehaus.plexus.util.StringUtils;
+import java.util.Map;
 
 public class SurefireReportParser
 {
@@ -35,36 +39,51 @@
     private File reportsDirectory;
 
     private List testSuites = new ArrayList();
-    
+
     private Locale locale;
 
+    private static final int PCENT = 100;
+
     public SurefireReportParser()
     {
     }
 
     public SurefireReportParser( File reportsDirectory, Locale locale )
     {
-        setReportsDirectory(reportsDirectory);
-        
-        setLocale(locale);
+        this.reportsDirectory = reportsDirectory;
+
+        setLocale( locale );
     }
 
     public List parseXMLReportFiles()
+        throws MavenReportException
     {
-        ReportTestSuite testSuite;
-
-        if ( !reportsDirectory.exists() )
+        if ( reportsDirectory.exists() )
         {
-            return testSuites;
-        }
-
-        String[] xmlReportFiles = getIncludedFiles( reportsDirectory, "*.xml", "*.txt" );
+            String[] xmlReportFiles = getIncludedFiles( reportsDirectory, "*.xml", "*.txt" );
 
-        for ( int index = 0; index < xmlReportFiles.length; index++ )
-        {
-            testSuite = new ReportTestSuite( reportsDirectory + "/" + xmlReportFiles[index] );
+            for ( int index = 0; index < xmlReportFiles.length; index++ )
+            {
+                ReportTestSuite testSuite = new ReportTestSuite();
+                try
+                {
+                    testSuite.parse( reportsDirectory + "/" + xmlReportFiles[index] );
+                }
+                catch ( ParserConfigurationException e )
+                {
+                    throw new MavenReportException( "Error setting up parser for JUnit XML report", e );
+                }
+                catch ( SAXException e )
+                {
+                    throw new MavenReportException( "Error parsing JUnit XML report", e );
+                }
+                catch ( IOException e )
+                {
+                    throw new MavenReportException( "Error reading JUnit XML report", e );
+                }
 
-            testSuites.add( testSuite );
+                testSuites.add( testSuite );
+            }
         }
 
         return testSuites;
@@ -97,8 +116,6 @@
 
         int totalNumberOfFailures = 0;
 
-        String totalPercentage = "";
-
         float totalElapsedTime = 0.0f;
 
         while ( iter.hasNext() )
@@ -114,7 +131,7 @@
             totalElapsedTime += suite.getTimeElapsed();
         }
 
-        totalPercentage = computePercentage( totalNumberOfTests, totalNumberOfErrors, totalNumberOfFailures );
+        String totalPercentage = computePercentage( totalNumberOfTests, totalNumberOfErrors, totalNumberOfFailures );
 
         totalSummary.put( "totalTests", Integer.toString( totalNumberOfTests ) );
 
@@ -138,33 +155,33 @@
     {
         return this.reportsDirectory;
     }
-    
-    public void setLocale( Locale locale )
+
+    public final void setLocale( Locale locale )
     {
         this.locale = locale;
-        setNumberFormat( NumberFormat.getInstance( locale ) );
+        numberFormat = NumberFormat.getInstance( locale );
     }
 
     public Locale getLocale()
     {
         return this.locale;
     }
-    
+
     public void setNumberFormat( NumberFormat numberFormat )
     {
         this.numberFormat = numberFormat;
     }
-    
+
     public NumberFormat getNumberFormat()
     {
-    	return this.numberFormat;
+        return this.numberFormat;
     }
 
-    public HashMap getSuitesGroupByPackage( List testSuitesList )
+    public Map getSuitesGroupByPackage( List testSuitesList )
     {
         ListIterator iter = testSuitesList.listIterator();
 
-        HashMap suitePackage = new HashMap();
+        Map suitePackage = new HashMap();
 
         while ( iter.hasNext() )
         {
@@ -172,7 +189,7 @@
 
             List suiteList = new ArrayList();
 
-            if ( (List) suitePackage.get( suite.getPackageName() ) != null )
+            if ( suitePackage.get( suite.getPackageName() ) != null )
             {
                 suiteList = (List) suitePackage.get( suite.getPackageName() );
             }
@@ -187,12 +204,15 @@
 
     public String computePercentage( int tests, int errors, int failures )
     {
+        float percentage;
         if ( tests == 0 )
         {
-            return numberFormat.format( 0.00f );
+            percentage = 0;
+        }
+        else
+        {
+            percentage = ( (float) ( tests - errors - failures ) / (float) tests ) * PCENT;
         }
-
-        float percentage = ( (float) ( tests - errors - failures ) / (float) tests ) * 100;
 
         return numberFormat.format( percentage );
     }
@@ -208,21 +228,19 @@
             ReportTestSuite suite = (ReportTestSuite) iter.next();
 
             List testCaseList = suite.getTestCases();
-            
-            if ( testCaseList == null )
-            {
-                continue;
-            }
-
-            ListIterator caseIter = testCaseList.listIterator();
 
-            while ( caseIter.hasNext() )
+            if ( testCaseList != null )
             {
-                ReportTestCase tCase = (ReportTestCase) caseIter.next();
+                ListIterator caseIter = testCaseList.listIterator();
 
-                if ( tCase.getFailure() != null )
+                while ( caseIter.hasNext() )
                 {
-                    failureDetailList.add( tCase );
+                    ReportTestCase tCase = (ReportTestCase) caseIter.next();
+
+                    if ( tCase.getFailure() != null )
+                    {
+                        failureDetailList.add( tCase );
+                    }
                 }
             }
         }
@@ -242,8 +260,6 @@
 
         scanner.scan();
 
-        String[] filesToFormat = scanner.getIncludedFiles();
-
-        return filesToFormat;
+        return scanner.getIncludedFiles();
     }
 }

Modified: maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/ReportTestCaseTest.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/ReportTestCaseTest.java?rev=390302&r1=390301&r2=390302&view=diff
==============================================================================
--- maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/ReportTestCaseTest.java (original)
+++ maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/ReportTestCaseTest.java Thu Mar 30 18:09:52 2006
@@ -16,72 +16,50 @@
  * limitations under the License.
  */
 
-import junit.framework.*;
-
-import java.util.HashMap;
+import junit.framework.TestCase;
 
 /**
- *
  * @author Jontri
  */
 public class ReportTestCaseTest
     extends TestCase
 {
-    ReportTestCase tCase;
-
-    public ReportTestCaseTest( String testName )
-    {
-        super( testName );
-    }
+    private ReportTestCase tCase;
 
-    protected void setUp(  )
-                  throws Exception
+    protected void setUp()
+        throws Exception
     {
-        tCase = new ReportTestCase(  );
-    }
+        super.setUp();
 
-    protected void tearDown(  )
-                     throws Exception
-    {
+        tCase = new ReportTestCase();
     }
 
-    public static Test suite(  )
-    {
-        TestSuite suite = new TestSuite( ReportTestCaseTest.class );
-
-        return suite;
-    }
-
-    public void testSetName(  )
+    public void testSetName()
     {
         tCase.setName( "Test Case Name" );
 
-        assertEquals( "Test Case Name",
-                      tCase.getName(  ) );
+        assertEquals( "Test Case Name", tCase.getName() );
     }
 
-    public void testSetTime(  )
+    public void testSetTime()
     {
         tCase.setTime( .06f );
 
-        assertTrue( .06f == tCase.getTime(  ) );
+        assertEquals( .06f, tCase.getTime(), 0.0 );
     }
 
-    public void testSetFailure(  )
+    public void testSetFailure()
     {
-        HashMap hMap = new HashMap(  );
-
-        tCase.setFailure( hMap );
+        tCase.addFailure( "messagdeVal", "typeVal" );
 
-        assertEquals( hMap,
-                      tCase.getFailure(  ) );
+        assertEquals( "messageVal", tCase.getFailure().get( "message" ) );
+        assertEquals( "typeVal", tCase.getFailure().get( "type" ) );
     }
 
-    public void testSetFullName(  )
+    public void testSetFullName()
     {
         tCase.setFullName( "Test Case Full Name" );
 
-        assertEquals( "Test Case Full Name",
-                      tCase.getFullName(  ) );
+        assertEquals( "Test Case Full Name", tCase.getFullName() );
     }
 }

Modified: maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/ReportTestSuiteTest.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/ReportTestSuiteTest.java?rev=390302&r1=390301&r2=390302&view=diff
==============================================================================
--- maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/ReportTestSuiteTest.java (original)
+++ maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/ReportTestSuiteTest.java Thu Mar 30 18:09:52 2006
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-import junit.framework.*;
+import junit.framework.TestCase;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -24,88 +24,68 @@
 public class ReportTestSuiteTest
     extends TestCase
 {
-    ReportTestSuite tSuite;
+    private ReportTestSuite tSuite;
 
-    public ReportTestSuiteTest( String testName )
+    protected void setUp()
+        throws Exception
     {
-        super( testName );
-    }
-
-    protected void setUp(  )
-                  throws Exception
-    {
-        tSuite = new ReportTestSuite(  );
-    }
-
-    protected void tearDown(  )
-                     throws Exception
-    {
-    }
-
-    public static Test suite(  )
-    {
-        TestSuite suite = new TestSuite( ReportTestSuiteTest.class );
+        super.setUp();
 
-        return suite;
+        tSuite = new ReportTestSuite();
     }
 
-    public void testSetTestCases(  )
+    public void testSetTestCases()
     {
-        ReportTestCase tCase = new ReportTestCase(  );
+        ReportTestCase tCase = new ReportTestCase();
 
-        List tCaseList = new ArrayList(  );
+        List tCaseList = new ArrayList();
 
         tCaseList.add( tCase );
 
         tSuite.setTestCases( tCaseList );
 
-        assertEquals( tCase, (ReportTestCase) tSuite.getTestCases(  ).get( 0 ) );
+        assertEquals( tCase, tSuite.getTestCases().get( 0 ) );
     }
 
-    public void testSetNumberdOfErrors(  )
+    public void testSetNumberdOfErrors()
     {
         tSuite.setNumberOfErrors( 9 );
 
-        assertEquals( 9,
-                      tSuite.getNumberOfErrors(  ) );
+        assertEquals( 9, tSuite.getNumberOfErrors() );
     }
 
-    public void testSetNumberOfFailures(  )
+    public void testSetNumberOfFailures()
     {
         tSuite.setNumberOfFailures( 10 );
 
-        assertEquals( 10,
-                      tSuite.getNumberOfFailures(  ) );
+        assertEquals( 10, tSuite.getNumberOfFailures() );
     }
 
-    public void testSetNumberOfTests(  )
+    public void testSetNumberOfTests()
     {
         tSuite.setNumberOfTests( 11 );
 
-        assertEquals( 11,
-                      tSuite.getNumberOfTests(  ) );
+        assertEquals( 11, tSuite.getNumberOfTests() );
     }
 
-    public void testSetName(  )
+    public void testSetName()
     {
         tSuite.setName( "Suite Name" );
 
-        assertEquals( "Suite Name",
-                      tSuite.getName(  ) );
+        assertEquals( "Suite Name", tSuite.getName() );
     }
 
-    public void testSetPackageName(  )
+    public void testSetPackageName()
     {
         tSuite.setPackageName( "Suite Package Name" );
 
-        assertEquals( "Suite Package Name",
-                      tSuite.getPackageName(  ) );
+        assertEquals( "Suite Package Name", tSuite.getPackageName() );
     }
 
-    public void testSetTimeElapsed(  )
+    public void testSetTimeElapsed()
     {
         tSuite.setTimeElapsed( .06f );
 
-        assertTrue( .06f == tSuite.getTimeElapsed(  ) );
+        assertEquals( .06f, tSuite.getTimeElapsed(), 0.0 );
     }
 }

Modified: maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportParserTest.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportParserTest.java?rev=390302&r1=390301&r2=390302&view=diff
==============================================================================
--- maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportParserTest.java (original)
+++ maven/plugins/trunk/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportParserTest.java Thu Mar 30 18:09:52 2006
@@ -16,59 +16,41 @@
  * limitations under the License.
  */
 
+import junit.framework.TestCase;
+import org.apache.maven.reporting.MavenReportException;
+
 import java.io.File;
+import java.text.NumberFormat;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.Locale;
-import java.text.NumberFormat;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import java.util.Map;
 
 public class SurefireReportParserTest
     extends TestCase
 {
-    SurefireReportParser report;
-    File testFile;
+    private SurefireReportParser report;
 
-    public SurefireReportParserTest( String testName )
+    protected void setUp()
+        throws Exception
     {
-        super( testName );
-    }
+        super.setUp();
 
-    protected void setUp(  )
-                  throws Exception
-    {
-        report = new SurefireReportParser(  );
-        
-        report.setLocale( Locale.ENGLISH );
-    }
+        report = new SurefireReportParser();
 
-    protected void tearDown(  )
-                     throws Exception
-    {
+        report.setLocale( Locale.ENGLISH );
     }
 
-    public static Test suite(  )
+    public void testParseXMLReportFiles()
+        throws MavenReportException
     {
-        TestSuite suite = new TestSuite( SurefireReportParserTest.class );
-
-        return suite;
-    }
+        report.setReportsDirectory( new File( System.getProperty( "basedir" ), "target/test-classes/test-reports" ) );
 
-    public void testParseXMLReportFiles(  )
-    {
-        report.setReportsDirectory( new File( System.getProperty( "basedir" ),
-                                              "target/test-classes/test-reports" ) );
+        List suites = report.parseXMLReportFiles();
 
-        List suites = report.parseXMLReportFiles(  );
+        assertEquals( 3, suites.size() );
 
-        assertEquals( suites.size(), 3 );
-        
         Iterator it = suites.iterator();
         while ( it.hasNext() )
         {
@@ -79,28 +61,27 @@
         }
     }
 
-    public void testParseTestSuiteName(  )
+    public void testParseTestSuiteName()
     {
-        assertEquals( "CircleTest",
-                      report.parseTestSuiteName( "Battery: com.shape.CircleTest" ) );
+        assertEquals( "CircleTest", report.parseTestSuiteName( "Battery: com.shape.CircleTest" ) );
     }
 
-    public void testParseTestSuitePackageName(  )
+    public void testParseTestSuitePackageName()
     {
-        assertEquals( "com.shape",
-                      report.parseTestSuitePackageName( "Battery: com.shape.CircleTest" ) );
+        assertEquals( "com.shape", report.parseTestSuitePackageName( "Battery: com.shape.CircleTest" ) );
     }
 
-    public void testParseTestCaseName(  )
+    public void testParseTestCaseName()
     {
-        assertTrue( "testCase".equals( report.parseTestCaseName( "testCase(com.shape.CircleTest)" ) ) );
+        assertEquals( "testCase", report.parseTestCaseName( "testCase(com.shape.CircleTest)" ) );
     }
 
-    public void testGetSummary(  ) throws Exception
+    public void testGetSummary()
+        throws Exception
     {
-        ReportTestSuite tSuite1 = new ReportTestSuite(  );
+        ReportTestSuite tSuite1 = new ReportTestSuite();
 
-        ReportTestSuite tSuite2 = new ReportTestSuite(  );
+        ReportTestSuite tSuite2 = new ReportTestSuite();
 
         tSuite1.setNumberOfErrors( 10 );
 
@@ -118,7 +99,7 @@
 
         tSuite2.setNumberOfTests( 100 );
 
-        List suiteList = new ArrayList(  );
+        List suiteList = new ArrayList();
 
         suiteList.add( tSuite1 );
 
@@ -126,15 +107,12 @@
 
         Map testMap = report.getSummary( suiteList );
 
-        assertEquals( 20,
-                      Integer.parseInt( testMap.get( "totalErrors" ).toString(  ) ) );
+        assertEquals( 20, Integer.parseInt( testMap.get( "totalErrors" ).toString() ) );
+
+        assertEquals( 40, Integer.parseInt( testMap.get( "totalFailures" ).toString() ) );
 
-        assertEquals( 40,
-                      Integer.parseInt( testMap.get( "totalFailures" ).toString(  ) ) );
+        assertEquals( 200, Integer.parseInt( testMap.get( "totalTests" ).toString() ) );
 
-        assertEquals( 200,
-                      Integer.parseInt( testMap.get( "totalTests" ).toString(  ) ) );
-        
         NumberFormat numberFormat = report.getNumberFormat();
 
         assertEquals( 2.0f, numberFormat.parse( testMap.get( "totalElapsedTime" ).toString() )
@@ -144,21 +122,20 @@
             .floatValue(), 0 );
     }
 
-    public void testSetReportsDirectory(  )
+    public void testSetReportsDirectory()
     {
         report.setReportsDirectory( new File( "Reports_Directory" ) );
 
-        assertEquals( new File( "Reports_Directory" ),
-                      report.getReportsDirectory(  ) );
+        assertEquals( new File( "Reports_Directory" ), report.getReportsDirectory() );
     }
 
-    public void testGetSuitesGroupByPackage(  )
+    public void testGetSuitesGroupByPackage()
     {
-        ReportTestSuite tSuite1 = new ReportTestSuite(  );
+        ReportTestSuite tSuite1 = new ReportTestSuite();
 
-        ReportTestSuite tSuite2 = new ReportTestSuite(  );
+        ReportTestSuite tSuite2 = new ReportTestSuite();
 
-        ReportTestSuite tSuite3 = new ReportTestSuite(  );
+        ReportTestSuite tSuite3 = new ReportTestSuite();
 
         tSuite1.setPackageName( "Package1" );
 
@@ -166,7 +143,7 @@
 
         tSuite3.setPackageName( "Package2" );
 
-        List suiteList = new ArrayList(  );
+        List suiteList = new ArrayList();
 
         suiteList.add( tSuite1 );
 
@@ -174,48 +151,45 @@
 
         suiteList.add( tSuite3 );
 
-        HashMap groupMap = report.getSuitesGroupByPackage( suiteList );
+        Map groupMap = report.getSuitesGroupByPackage( suiteList );
 
-        assertEquals( 2,
-                      groupMap.size(  ) );
+        assertEquals( 2, groupMap.size() );
 
-        assertEquals( tSuite1,
-                      ( (List) groupMap.get( "Package1" ) ).get( 0 ) );
+        assertEquals( tSuite1, ( (List) groupMap.get( "Package1" ) ).get( 0 ) );
 
-        assertEquals( tSuite2,
-                      ( (List) groupMap.get( "Package1" ) ).get( 1 ) );
+        assertEquals( tSuite2, ( (List) groupMap.get( "Package1" ) ).get( 1 ) );
 
-        assertEquals( tSuite3,
-                      ( (List) groupMap.get( "Package2" ) ).get( 0 ) );
+        assertEquals( tSuite3, ( (List) groupMap.get( "Package2" ) ).get( 0 ) );
     }
 
-    public void testComputePercentage(  ) throws Exception
+    public void testComputePercentage()
+        throws Exception
     {
-    	NumberFormat numberFormat = report.getNumberFormat();
-    	
+        NumberFormat numberFormat = report.getNumberFormat();
+
         assertEquals( 70.00f, numberFormat.parse( report.computePercentage( 100, 20, 10 ) )
             .floatValue(), 0 );
     }
 
-    public void testGetFailureDetails(  )
+    public void testGetFailureDetails()
     {
-        ReportTestSuite tSuite1 = new ReportTestSuite(  );
+        ReportTestSuite tSuite1 = new ReportTestSuite();
 
-        ReportTestSuite tSuite2 = new ReportTestSuite(  );
+        ReportTestSuite tSuite2 = new ReportTestSuite();
 
-        ReportTestCase tCase1 = new ReportTestCase(  );
+        ReportTestCase tCase1 = new ReportTestCase();
 
-        ReportTestCase tCase2 = new ReportTestCase(  );
+        ReportTestCase tCase2 = new ReportTestCase();
 
-        ReportTestCase tCase3 = new ReportTestCase(  );
+        ReportTestCase tCase3 = new ReportTestCase();
 
-        tCase1.setFailure( new HashMap(  ) );
+        tCase1.addFailure( null, null );
 
-        tCase3.setFailure( new HashMap(  ) );
+        tCase3.addFailure( null, null );
 
-        List tCaseList = new ArrayList(  );
+        List tCaseList = new ArrayList();
 
-        List tCaseList2 = new ArrayList(  );
+        List tCaseList2 = new ArrayList();
 
         tCaseList.add( tCase1 );
 
@@ -227,7 +201,7 @@
 
         tSuite2.setTestCases( tCaseList2 );
 
-        List suiteList = new ArrayList(  );
+        List suiteList = new ArrayList();
 
         suiteList.add( tSuite1 );
 
@@ -235,13 +209,10 @@
 
         List failList = report.getFailureDetails( suiteList );
 
-        assertEquals( 2,
-                      failList.size(  ) );
+        assertEquals( 2, failList.size() );
 
-        assertEquals( tCase1,
-                      failList.get( 0 ) );
+        assertEquals( tCase1, failList.get( 0 ) );
 
-        assertEquals( tCase3,
-                      failList.get( 1 ) );
+        assertEquals( tCase3, failList.get( 1 ) );
     }
 }