package hudson.plugins.mstest;
import static org.junit.Assert.assertTrue;
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 tests for MSTestReportConverter class
*
* @author Antonio Marques
*/
public class MSTestReportConverterTest {
@Before
public void setUp() {
XMLUnit.setIgnoreWhitespace(true);
XMLUnit.setNormalizeWhitespace(true);
XMLUnit.setIgnoreComments(true);
}
@Test
public void testConversionTwoTestsOneClass() throws Exception {
Transform myTransform = new Transform(new InputSource(this.getClass().getResourceAsStream("mstest_2_tests_1_class.trx")),
new InputSource(this.getClass().getResourceAsStream(MSTestReportConverter.MSTEST_TO_JUNIT_XSLFILE_STR)));
Diff myDiff = new Diff(readXmlAsString("junit_mstest_2_tests_1_class.xml"), myTransform);
assertTrue("XSL transformation did not work" + myDiff, myDiff.similar());
}
@Test
public void testConversionFourTestsTwoClasses() throws Exception {
Transform myTransform = new Transform(new InputSource(this.getClass().getResourceAsStream("mstest_4_tests_2_classes.trx")),
new InputSource(this.getClass().getResourceAsStream(MSTestReportConverter.MSTEST_TO_JUNIT_XSLFILE_STR)));
Diff myDiff = new Diff(readXmlAsString("junit_mstest_4_tests_2_classes.xml"), myTransform);
assertTrue("XSL transformation did not work" + myDiff, myDiff.similar());
}
@Test
public void testConversionTwoTestsFromDifferentAssemblies() throws Exception {
Transform myTransform = new Transform(new InputSource(this.getClass().getResourceAsStream("mstest_2_tests_from_different_assemblies.trx")),
new InputSource(this.getClass().getResourceAsStream(MSTestReportConverter.MSTEST_TO_JUNIT_XSLFILE_STR)));
Diff myDiff = new Diff(readXmlAsString("junit_mstest_2_tests_from_different_assemblies.xml"), myTransform);
assertTrue("XSL transformation did not work" + myDiff, myDiff.similar());
}
@Test
public void testConversionMSTest2010Schema() throws Exception {
Transform myTransform = new Transform(new InputSource(this.getClass().getResourceAsStream("mstest_vs_2010.trx")),
new InputSource(this.getClass().getResourceAsStream(MSTestReportConverter.MSTEST_TO_JUNIT_XSLFILE_STR)));
Diff myDiff = new Diff(readXmlAsString("mstest_vs_2010.xml"), myTransform);
assertTrue("XSL transformation did not work" + myDiff, myDiff.similar());
}
@Test
public void testConversionTestsWithDurationLongerThanOneMinute() throws Exception {
Transform myTransform = new Transform(new InputSource(this.getClass().getResourceAsStream("mstest_more_than_one_minute_test.trx")),
new InputSource(this.getClass().getResourceAsStream(MSTestReportConverter.MSTEST_TO_JUNIT_XSLFILE_STR)));
Diff myDiff = new Diff(readXmlAsString("junit_mstest_more_than-one_minute_test.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;
}
}