package hudson.plugins.testabilityexplorer.helpers;
import hudson.plugins.testabilityexplorer.parser.XmlStatisticsParser;
import hudson.plugins.testabilityexplorer.parser.selectors.DefaultConverterSelector;
import hudson.plugins.testabilityexplorer.report.health.ReportBuilder;
import hudson.plugins.testabilityexplorer.report.health.TestabilityReportBuilder;
import hudson.plugins.testabilityexplorer.report.health.TemporaryHealthCalculator;
import hudson.plugins.testabilityexplorer.report.charts.ChartBuilder;
import hudson.plugins.testabilityexplorer.report.charts.TestabilityChartBuilder;
import hudson.plugins.testabilityexplorer.PluginBaseTest;
import hudson.model.BuildListener;
import hudson.FilePath;
import org.apache.commons.lang.SystemUtils;
import org.apache.commons.io.IOUtils;
import static org.easymock.EasyMock.*;
import static org.testng.Assert.*;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import java.io.*;
import java.util.List;
/**
* @author reik.schatz
*/
@Test
public class BuildProxyCallableHelperTest extends PluginBaseTest
{
private static final String REPORT_FILE_NAME = "report.xml";
@BeforeClass
public void setUp() throws IOException
{
File report = getReport();
BufferedWriter out = null;
try
{
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(report),"UTF8"));
out.write(createReportXml());
}
finally
{
IOUtils.closeQuietly(out);
}
assertTrue(report.exists());
}
@AfterClass
public void tearDown()
{
File report = getReport();
if (report.exists())
{
report.delete();
}
assertFalse(report.exists());
}
protected File getReport()
{
return new File(SystemUtils.getJavaIoTmpDir(), REPORT_FILE_NAME);
}
public void testCalling() throws Exception
{
ChartBuilder chartBuilder = new TestabilityChartBuilder();
ReportBuilder reportBuilder = new TestabilityReportBuilder(chartBuilder, new TemporaryHealthCalculator());
BuildProxy buildProxy = createBuildProxy(SystemUtils.getJavaIoTmpDir(), new XmlStatisticsParser(new DefaultConverterSelector()), reportBuilder);
ReportParseDelegate parseDelegate = new ReportParseDelegate(REPORT_FILE_NAME, 100, 80);
List<FilePath> pathList = parseDelegate.getFilesToParse(buildProxy);
assertNotNull(pathList);
assertEquals(pathList.size(), 1);
BuildListener buildListener = createMock(BuildListener.class);
replay(buildListener);
BuildProxyCallableHelper buildProxyCallableHelper = new BuildProxyCallableHelper(buildProxy, parseDelegate, buildListener);
buildProxy = buildProxyCallableHelper.call();
}
}