package hudson.plugins.testabilityexplorer.report; import hudson.plugins.testabilityexplorer.report.costs.Statistic; import hudson.plugins.testabilityexplorer.report.charts.ChartBuilder; import hudson.plugins.testabilityexplorer.report.charts.TestabilityChartBuilder; import hudson.plugins.testabilityexplorer.report.health.TestabilityReportBuilder; import hudson.plugins.testabilityexplorer.report.health.TemporaryHealthCalculator; import hudson.plugins.testabilityexplorer.PluginBaseTest; import hudson.plugins.testabilityexplorer.PluginImpl; import hudson.model.AbstractProject; import static org.mockito.Mockito.mock; import static org.testng.Assert.*; import org.testng.annotations.Test; import java.util.Collection; /** * Tests the {@link AbstractProjectReport}. * * @author reik.schatz */ @Test public class AbstractProjectReportTest extends PluginBaseTest { public void testDefaultReport() { AbstractProject<?, ?> project = mock(AbstractProject.class); AbstractProjectReport defaultReport = new ProjectIndividualReport(project); assertNull(defaultReport.getApplicableBuildAction()); assertNull(defaultReport.getDisplayName()); assertNull(defaultReport.getIconFileName()); assertNull(defaultReport.getUrlName()); assertTrue(defaultReport.getResults().isEmpty()); assertEquals(defaultReport.getTotals(), 0); } public void testTestabilityExplorerProjectIndividualReport() { AbstractProject<?, ?> project = mock(AbstractProject.class); final Collection<Statistic> stats = createStatistics(); AbstractProjectReport testabilityExplorerProjectIndividualReport = new AbstractProjectReport(project) { @Override protected AbstractBuildReport getApplicableBuildAction() { ChartBuilder chartBuilder = new TestabilityChartBuilder(); return new BuildIndividualReport(stats, new TestabilityReportBuilder(chartBuilder, new TemporaryHealthCalculator()), new CostDetailBuilder()); } protected Class getBuildActionClass() { return BuildIndividualReport.class; } }; assertEquals(testabilityExplorerProjectIndividualReport.getDisplayName(), PluginImpl.DISPLAY_NAME); assertEquals(testabilityExplorerProjectIndividualReport.getIconFileName(), PluginImpl.ICON_FILE_NAME); assertEquals(testabilityExplorerProjectIndividualReport.getUrlName(), PluginImpl.URL); assertEquals(testabilityExplorerProjectIndividualReport.getSearchUrl(), PluginImpl.URL); Collection results = testabilityExplorerProjectIndividualReport.getResults(); assertFalse(results.isEmpty()); assertEquals(testabilityExplorerProjectIndividualReport.getTotals(), 56); } }