1 package org.testng.xml;
2 
3 import org.testng.Assert;
4 import org.testng.annotations.DataProvider;
5 import org.testng.annotations.Test;
6 
7 import java.io.File;
8 import java.io.FileInputStream;
9 
10 import static test.SimpleBaseTest.getPathToResource;
11 
12 public class SuiteXmlParserTest {
13 
14     private static final File PARENT = new File(getPathToResource("xml"));
15 
16     @DataProvider
dp()17     private static Object[][] dp() {
18         return new Object[][] {
19                 { "goodWithDoctype.xml", true },
20                 { "goodWithoutDoctype.xml", true },
21                 { "badWithDoctype.xml", false }, // TestNGException -> SAXParseException
22                 { "badWithoutDoctype.xml", false } // NullPointerException
23         };
24     }
25 
26     @Test(dataProvider = "dp")
testParse(String fileName, boolean shouldWork)27     public void testParse(String fileName, boolean shouldWork) {
28         SuiteXmlParser parser = new SuiteXmlParser();
29 
30         try (FileInputStream stream = new FileInputStream(new File(PARENT, fileName))) {
31             parser.parse(fileName, stream, false);
32             if (!shouldWork) {
33                 Assert.fail("Parsing of " + fileName + " is supposed to fail");
34             }
35         } catch (Exception e) {
36             if (shouldWork) {
37                 Assert.fail("Parsing of " + fileName + " is supposed to work");
38             }
39         }
40     }
41 }