package hudson.plugins.cppunit; import com.thalesgroup.dtkit.metrics.api.InputMetricXSL; import com.thalesgroup.dtkit.util.converter.ConvertUtil; import org.custommonkey.xmlunit.Diff; import org.custommonkey.xmlunit.XMLUnit; import org.junit.Assert; import org.junit.Before; import java.io.File; public class AbstractXUnitXSLTest { @Before public void setUp() { XMLUnit.setIgnoreWhitespace(true); XMLUnit.setNormalizeWhitespace(true); XMLUnit.setIgnoreComments(true); } public void convertAndValidate(Class<? extends InputMetricXSL> classType, String inputXMLPath, String expectedResultPath) throws Exception { InputMetricXSL inputMetricXSL = classType.newInstance(); File outputXMLFile = File.createTempFile("result", "xml"); File inputXMLFile = new File(this.getClass().getResource(inputXMLPath).toURI()); //The input file must be valid Assert.assertTrue(inputMetricXSL.validateInputFile(inputXMLFile)); ConvertUtil.convert(inputMetricXSL.getClass(), inputMetricXSL.getXslName(), inputXMLFile, outputXMLFile); Diff myDiff = new Diff(XSLUtil.readXmlAsString(new File(this.getClass().getResource(expectedResultPath).toURI())), XSLUtil.readXmlAsString(outputXMLFile)); Assert.assertTrue("XSL transformation did not work" + myDiff, myDiff.similar()); //The generated output file must be valid Assert.assertTrue(inputMetricXSL.validateOutputFile(outputXMLFile)); outputXMLFile.deleteOnExit(); } }