package hudson.plugins.testabilityexplorer.report.health;
import hudson.model.HealthReport;
import org.testng.annotations.Test;
import static org.testng.Assert.*;
import hudson.plugins.testabilityexplorer.report.charts.ChartBuilder;
import hudson.plugins.testabilityexplorer.report.charts.TestabilityChartBuilder;
import hudson.plugins.testabilityexplorer.report.costs.Statistic;
import hudson.plugins.testabilityexplorer.report.costs.CostSummary;
import hudson.plugins.testabilityexplorer.PluginBaseTest;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* Tests health reporting.
*
* @author reik.schatz
*/
@Test
public class ReportBuilderTest extends PluginBaseTest
{
public void testHealthReporting()
{
ChartBuilder chartBuilder = new TestabilityChartBuilder();
ReportBuilder reportBuilder = new TestabilityReportBuilder(chartBuilder, new TemporaryHealthCalculator());
{
CostSummary costSummary = new CostSummary(1, 1, 1, 40);
Collection<Statistic> stats = createStatistics(false, costSummary);
assertEquals(stats.size(), 1);
HealthReport report = reportBuilder.computeHealth(stats);
assertEquals(report.getScore(), 33); // 2 of 3 classes are not excellent
}
{
CostSummary costSummary = new CostSummary(2, 0, 1, 40);
Collection<Statistic> stats = createStatistics(false, costSummary);
assertEquals(stats.size(), 1);
HealthReport report = reportBuilder.computeHealth(stats);
assertEquals(report.getScore(), 66); // 1 of 3 classes are not excellent
}
{
CostSummary costSummary = new CostSummary(3, 0, 0, 40);
Collection<Statistic> stats = createStatistics(false, costSummary);
assertEquals(stats.size(), 1);
HealthReport report = reportBuilder.computeHealth(stats);
assertEquals(report.getScore(), 100); // 3 of 3 classes are not excellent
}
{
CostSummary costSummary = new CostSummary(2, 1, 1, 40);
Collection<Statistic> stats = createStatistics(false, costSummary);
assertEquals(stats.size(), 1);
HealthReport report = reportBuilder.computeHealth(stats);
assertEquals(report.getScore(), 50); // 2 of 4 classes are not excellent
}
{
CostSummary costSummary = new CostSummary(0, 2, 3, 40);
Collection<Statistic> stats = createStatistics(false, costSummary);
assertEquals(stats.size(), 1);
HealthReport report = reportBuilder.computeHealth(stats);
assertEquals(report.getScore(), 0); // 0 of 5 classes are not excellent
}
{
CostSummary costSummary = new CostSummary(0, 0, 0, 40);
Collection<Statistic> stats = createStatistics(false, costSummary);
assertEquals(stats.size(), 1);
HealthReport report = reportBuilder.computeHealth(stats);
assertEquals(report.getScore(), 0); // 0 of 0 classes are not excellent (maybe should be 100%)
}
{
CostSummary costSummary = new CostSummary(11, 4, 32, 40);
Collection<Statistic> stats = createStatistics(false, costSummary);
assertEquals(stats.size(), 1);
HealthReport report = reportBuilder.computeHealth(stats);
assertEquals(report.getScore(), 23); // 11 of 47 classes are not excellent
}
}
}