package hudson.plugins.nunit; import static org.junit.Assert.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import org.custommonkey.xmlunit.Diff; import org.custommonkey.xmlunit.Transform; import org.custommonkey.xmlunit.XMLUnit; import org.junit.Before; import org.junit.Test; import org.xml.sax.InputSource; /** * Unit test for the XSL transformation * * @author Erik Ramfelt */ public class NUnitToJUnitXslTest { @Before public void setUp() { XMLUnit.setIgnoreWhitespace(true); XMLUnit.setNormalizeWhitespace(true); XMLUnit.setIgnoreComments(true); } @Test public void testTransformation() throws Exception { Transform myTransform = new Transform(new InputSource(this.getClass().getResourceAsStream("NUnit-simple.xml")), new InputSource(this.getClass().getResourceAsStream(NUnitReportTransformer.NUNIT_TO_JUNIT_XSLFILE_STR))); Diff myDiff = new Diff(readXmlAsString("JUnit-simple.xml"), myTransform); assertTrue("XSL transformation did not work" + myDiff, myDiff.similar()); } @Test public void testTransformationFailure() throws Exception { Transform myTransform = new Transform( new InputSource(this.getClass().getResourceAsStream("NUnit-failure.xml")), new InputSource(this .getClass().getResourceAsStream(NUnitReportTransformer.NUNIT_TO_JUNIT_XSLFILE_STR))); Diff myDiff = new Diff(readXmlAsString("JUnit-failure.xml"), myTransform.getResultString()); assertTrue("XSL transformation did not work" + myDiff, myDiff.similar()); } @Test public void testTransformationMultiNamespace() throws Exception { XMLUnit.setNormalizeWhitespace(false); Transform myTransform = new Transform(new InputSource(this.getClass().getResourceAsStream( "NUnit-multinamespace.xml")), new InputSource(this.getClass().getResourceAsStream( NUnitReportTransformer.NUNIT_TO_JUNIT_XSLFILE_STR))); Diff myDiff = new Diff(readXmlAsString("JUnit-multinamespace.xml"), myTransform); assertTrue("XSL transformation did not work" + myDiff, myDiff.similar()); } @Test public void testTransformedIgnored() throws Exception { Transform myTransform = new Transform( new InputSource(this.getClass().getResourceAsStream("NUnit-ignored.xml")), new InputSource(this .getClass().getResourceAsStream(NUnitReportTransformer.NUNIT_TO_JUNIT_XSLFILE_STR))); Diff myDiff = new Diff(readXmlAsString("JUnit-ignored.xml"), myTransform); assertTrue("XSL transformation did not work" + myDiff, myDiff.similar()); } @Test public void testTransformedIssue1077() throws Exception { Transform myTransform = new Transform( new InputSource(this.getClass().getResourceAsStream("NUnit-issue1077.xml")), new InputSource(this .getClass().getResourceAsStream(NUnitReportTransformer.NUNIT_TO_JUNIT_XSLFILE_STR))); Diff myDiff = new Diff(readXmlAsString("JUnit-issue1077.xml"), myTransform); assertTrue("XSL transformation did not work. " + myDiff, myDiff.similar()); } private String readXmlAsString(String resourceName) throws IOException { String xmlString = ""; BufferedReader reader = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream( resourceName))); String line = reader.readLine(); while (line != null) { xmlString += line + "\n"; line = reader.readLine(); } reader.close(); return xmlString; } }