new cluster listeners stage and combined report

I think that you're making the basic test overcomplicated. Please, move these aggregated structures to CombinedReportDocument and use the simpler versions in TestReportDocument.
If some methods need iteration over these structures, refactor the loop contents into separate methods (keep those here in ReportDocument) and move the iteration to those concrete classes.