{
Map<String, ReportTest> testsByPackage = new LinkedHashMap<String, ReportTest>();
for ( ReportTestSuite suite : suiteList )
{
ReportTest report = testsByPackage.get( suite.getPackageName() );
if ( report == null )
{
report = new ReportTest();
report.setId( suite.getPackageName() );
report.setName( suite.getPackageName() );
}
report.setTests( report.getTests() + suite.getNumberOfTests() );
report.setErrors( report.getErrors() + suite.getNumberOfErrors() );
report.setFailures( report.getFailures() + suite.getNumberOfFailures() );
report.setElapsedTime( report.getElapsedTime() + suite.getTimeElapsed() );
ReportTest reportTest = new ReportTest();
reportTest.setId( suite.getPackageName() + "." + suite.getName() );
reportTest.setName( suite.getName() );
reportTest.setTests( suite.getNumberOfTests() );
reportTest.setErrors( suite.getNumberOfErrors() );
reportTest.setFailures( suite.getNumberOfFailures() );
reportTest.setElapsedTime( suite.getTimeElapsed() );
reportTest.setChildren( suite.getTestCases() );
report.getChildren().add( reportTest );
testsByPackage.put( suite.getPackageName(), report );
}