package org.testng.xml; import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import java.io.File; import java.io.FileInputStream; import static test.SimpleBaseTest.getPathToResource; public class SuiteXmlParserTest { private static final File PARENT = new File(getPathToResource("xml")); @DataProvider private static Object[][] dp() { return new Object[][] { { "goodWithDoctype.xml", true }, { "goodWithoutDoctype.xml", true }, { "badWithDoctype.xml", false }, // TestNGException -> SAXParseException { "badWithoutDoctype.xml", false }, // NullPointerException { "issue174.xml", true } }; } @Test(dataProvider = "dp") public void testParse(String fileName, boolean shouldWork) { SuiteXmlParser parser = new SuiteXmlParser(); try (FileInputStream stream = new FileInputStream(new File(PARENT, fileName))) { XmlSuite suite = parser.parse(fileName, stream, false); if (!shouldWork) { Assert.fail("Parsing of " + fileName + " is supposed to fail"); } } catch (Exception e) { if (shouldWork) { Assert.fail("Parsing of " + fileName + " is supposed to work"); } } } }