Best Testng code snippet using org.testng.xml.TestNGContentHandler.xmlClasses
Source:TestNGContentHandler.java  
...298  }299  /**300   * Parse <classes>301   */302  public void xmlClasses(boolean start, Attributes attributes) {303    if (start) {304      m_currentClasses = Lists.newArrayList();305      m_currentClassIndex = 0;306    }307    else {308      m_currentTest.setXmlClasses(m_currentClasses);309      m_currentClasses = null;310    }311  }312  313  /**314   * Parse <listeners>315   */316  public void xmlListeners(boolean start, Attributes attributes) {317    if (start) {318      m_listeners = Lists.newArrayList();319    }320    else {321      if (null != m_listeners) {322        m_currentSuite.setListeners(m_listeners);323        m_listeners = null;324      }325    }326  }327  328  /**329   * Parse <listener>330   */331  public void xmlListener(boolean start, Attributes attributes) {332    if (start) {333      String listener = attributes.getValue("class-name");334      m_listeners.add(listener);335    }336  }337  /**338   * Parse <packages>339   */340  public void xmlPackages(boolean start, Attributes attributes) {341    if (start) {342      m_currentPackages = Lists.newArrayList();343    }344    else {345      if (null != m_currentPackages) {346        if(m_inTest) {347          m_currentTest.setXmlPackages(m_currentPackages);348        }349        else {350          m_currentSuite.setXmlPackages(m_currentPackages);351        }352      }353      354      m_currentPackages = null;355      m_currentPackage = null;356    }357  }358  /**359   * Parse <method-selectors>360   */361  public void xmlMethodSelectors(boolean start, Attributes attributes) {362    if (start) {363      m_currentSelectors = new ArrayList<XmlMethodSelector>();364    }365    else {366      if (m_inTest) {367        m_currentTest.setMethodSelectors(m_currentSelectors);368      }369      else {370        m_currentSuite.setMethodSelectors(m_currentSelectors);371      }372      373      m_currentSelectors = null;374    }375  }376  /**377   * Parse <selector-class>378   */379  public void xmlSelectorClass(boolean start, Attributes attributes) {380    if (start) {381      m_currentSelector.setName(attributes.getValue("name"));382      String priority = attributes.getValue("priority");383      if (priority == null) {384        priority = "0";385      }386      m_currentSelector.setPriority(new Integer(priority));387    }388    else {389      // do nothing390    }391  }392  393  /**394   * Parse <method-selector>395   */396  public void xmlMethodSelector(boolean start, Attributes attributes) {397    if (start) {398      m_currentSelector = new XmlMethodSelector();399    }400    else {401      m_currentSelectors.add(m_currentSelector);402      m_currentSelector = null;403    }404  }405  private void xmlMethod(boolean start, Attributes attributes) {406    if (start) {407      m_currentIncludedMethods = new ArrayList<XmlInclude>();408      m_currentExcludedMethods = Lists.newArrayList();409      m_currentIncludeIndex = 0;410    }411    else {412      m_currentClass.setIncludedMethods(m_currentIncludedMethods);413      m_currentClass.setExcludedMethods(m_currentExcludedMethods);414      m_currentIncludedMethods = null;415      m_currentExcludedMethods = null;416    }417  }418  /**419   * Parse <run>420   */421  public void xmlRun(boolean start, Attributes attributes) throws SAXException {422    if (start) {423      m_currentRuns = Lists.newArrayList();424    }425    else {426      if (null == m_currentTest) {427        throw new SAXException("Check the testng XML against schema. Expected <test> tag not found");428      }429      m_currentTest.setIncludedGroups(m_currentIncludedGroups);430      m_currentTest.setExcludedGroups(m_currentExcludedGroups);431    }432  }433  /**434   * NOTE: I only invoke xml*methods (e.g. xmlSuite()) if I am acting on both435   * the start and the end of the tag. This way I can keep the treatment of436   * this tag in one place. If I am only doing something when the tag opens,437   * the code is inlined below in the startElement() method.438   */439  @Override440  public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {441    String name = attributes.getValue("name");442    // ppp("START ELEMENT uri:" + uri + " sName:" + localName + " qName:" + qName +443    // " " + attributes);444    if ("suite".equals(qName)) {445      xmlSuite(true, attributes);446    }447    else if ("suite-file".equals(qName)) {448      xmlSuiteFile(true, attributes);449    }450    else if ("test".equals(qName)) {451      xmlTest(true, attributes);452    }453    else if ("script".equals(qName)) {454      xmlScript(true, attributes);455    }456    else if ("method-selector".equals(qName)) {457      xmlMethodSelector(true, attributes);458    }459    else if ("method-selectors".equals(qName)) {460      xmlMethodSelectors(true, attributes);461    }462    else if ("selector-class".equals(qName)) {463      xmlSelectorClass(true, attributes);464    }465    else if ("classes".equals(qName)) {466      xmlClasses(true, attributes);467    }468    else if ("packages".equals(qName)) {469      xmlPackages(true, attributes);470    }471    else if ("listeners".equals(qName)) {472      xmlListeners(true, attributes);473    }474    else if ("listener".equals(qName)) {475      xmlListener(true, attributes);476    }477    else if ("class".equals(qName)) {478      // If m_currentClasses is null, the XML is invalid and SAX479      // will complain, but in the meantime, dodge the NPE so SAX480      // can finish parsing the file.481      if (null != m_currentClasses) {482        m_currentClass = new XmlClass(name, Boolean.TRUE, m_currentClassIndex++);483        m_currentClasses.add(m_currentClass);484      }485    }486    else if ("package".equals(qName)) {487      if (null != m_currentPackages) {488        m_currentPackage = new XmlPackage();489        m_currentPackage.setName(name);490        m_currentPackages.add(m_currentPackage);491      }492    }493    else if ("define".equals(qName)) {494      xmlDefine(true, attributes);495    }496    else if ("run".equals(qName)) {497      xmlRun(true, attributes);498    }499    else if ("groups".equals(qName)) {500      m_currentIncludedGroups = Lists.newArrayList();501      m_currentExcludedGroups = Lists.newArrayList();502    }503    else if ("methods".equals(qName)) {504      xmlMethod(true, attributes);505    }506    else if ("include".equals(qName)) {507      if (null != m_currentIncludedMethods) {508        String in = attributes.getValue("invocation-numbers");509        if (!Utils.isStringEmpty(in)) {510          m_currentIncludedMethods.add(new XmlInclude(name, stringToList(in),511              m_currentIncludeIndex++));512        } else {513          m_currentIncludedMethods.add(new XmlInclude(name, m_currentIncludeIndex++));514        }515      }516      else if (null != m_currentDefines) {517        m_currentMetaGroup.add(name);518      }519      else if (null != m_currentRuns) {520        m_currentIncludedGroups.add(name);521      }522      else if (null != m_currentPackage) {523        m_currentPackage.getInclude().add(name);524      }525    }526    else if ("exclude".equals(qName)) {527      if (null != m_currentExcludedMethods) {528        m_currentExcludedMethods.add(name);529      }530      else if (null != m_currentRuns) {531        m_currentExcludedGroups.add(name);532      }533      else if (null != m_currentPackage) {534        m_currentPackage.getExclude().add(name);535      }536    }537    else if ("parameter".equals(qName)) {538      String value = attributes.getValue("value");539      if (m_inTest) {540        m_currentTestParameters.put(name, value);541      }542      else {543        m_currentSuiteParameters.put(name, value);544      }545    }546  }547  private List<Integer> stringToList(String in) {548    String[] numbers = in.split(" ");549    List<Integer> result = Lists.newArrayList();550    for (String n : numbers) {551      result.add(Integer.parseInt(n));552    }553    return result;554  }555  @Override556  public void endElement(String uri, String localName, String qName) throws SAXException {557    if ("suite".equals(qName)) {558      xmlSuite(false, null);559    }560    else if ("suite-file".equals(qName)) {561      xmlSuiteFile(false, null);562    }563    else if ("test".equals(qName)) {564      xmlTest(false, null);565    }566    else if ("define".equals(qName)) {567      xmlDefine(false, null);568    }569    else if ("run".equals(qName)) {570      xmlRun(false, null);571    }572    else if ("methods".equals(qName)) {573      xmlMethod(false, null);574    }575    else if ("classes".equals(qName)) {576      xmlClasses(false, null);577    }578    else if ("classes".equals(qName)) {579      xmlPackages(false, null);580    }581    else if ("listeners".equals(qName)) {582      xmlListeners(false, null);583    }584    else if ("method-selector".equals(qName)) {585      xmlMethodSelector(false, null);586    }587    else if ("method-selectors".equals(qName)) {588      xmlMethodSelectors(false, null);589    }590    else if ("selector-class".equals(qName)) {...xmlClasses
Using AI Code Generation
1import org.testng.xml.TestNGContentHandler;2import org.testng.xml.XmlSuite;3import java.io.File;4import java.io.IOException;5import java.util.List;6public class TestNGXmlClassesMethodExample {7    public static void main(String[] args) throws IOException {8        TestNGContentHandler handler = new TestNGContentHandler();9        File file = new File("src/test/resources/testng.xml");10        List<XmlSuite> xmlSuites = handler.parse(file);11        System.out.println(xmlSuites);12    }13}xmlClasses
Using AI Code Generation
1XmlSuite suite = new XmlSuite();2TestNGContentHandler handler = new TestNGContentHandler(suite);3SAXParserFactory factory = SAXParserFactory.newInstance();4SAXParser parser = factory.newSAXParser();5parser.parse(new File("testng.xml"), handler);6XmlSuite suite = new XmlSuite();7suite.setFileName("testng.xml");8suite.parse();9XmlSuite suite = new XmlSuite();10suite.setFileName("testng.xml");11suite.parse();12XmlSuite suite = new XmlSuite();13suite.setFileName("testng.xml");14suite.parse();15XmlSuite suite = new XmlSuite();16suite.setFileName("testng.xml");17suite.parse();18XmlSuite suite = new XmlSuite();19suite.setFileName("testng.xml");20suite.parse();21XmlSuite suite = new XmlSuite();22suite.setFileName("testng.xml");23suite.parse();24XmlSuite suite = new XmlSuite();25suite.setFileName("testng.xml");26suite.parse();27XmlSuite suite = new XmlSuite();28suite.setFileName("testng.xml");29suite.parse();xmlClasses
Using AI Code Generation
1public void testXMLClasses() throws Exception {2</suite>";3    TestNGContentHandler handler = new TestNGContentHandler();4    handler.xmlClasses(xml);5    List<XmlClass> classes = handler.getClasses();6    Assert.assertEquals(classes.size(), 2);7}8public void testParse() throws Exception {9</suite>";10    TestNGContentHandler handler = new TestNGContentHandler();11    handler.parse(xml);12    List<XmlClass> classes = handler.getClasses();13    Assert.assertEquals(classes.size(), 2);14}15public class TestNGContentHandler implements IContentHandler {16    private List<XmlClass> m_classes = new ArrayList<XmlClass>();17    public void xmlClasses(String xml) throws Exception {18        SAXParserFactory factory = SAXParserFactory.newInstance();19        SAXParser parser = factory.newSAXParser();20        parser.parse(new InputSource(new StringReader(xml)), this);21    }22    public void parse(String xml) throws Exception {23        SAXParserFactory factory = SAXParserFactory.newInstance();24        SAXParser parser = factory.newSAXParser();25        parser.parse(new InputSource(new StringReader(xml)), this);26    }27    public List<XmlClass> getClasses() {28        return m_classes;29    }30    public void startElement(String uri, String localName, String qName,31            Attributes attributes) throws SAXException {32        if ("class".equals(qName)) {33            String className = attributes.getValue("name");34            XmlClass xmlClass = new XmlClass(className);35            m_classes.add(xmlClass);36        }37    }38    public void endElement(String uri, String localName, String qName)39            throws SAXException {40    }41    public void characters(char[] ch, int start, int length)TestNG is a Java-based open-source framework for test automation that includes various test types, such as unit testing, functional testing, E2E testing, etc. TestNG is in many ways similar to JUnit and NUnit. But in contrast to its competitors, its extensive features make it a lot more reliable framework. One of the major reasons for its popularity is its ability to structure tests and improve the scripts' readability and maintainability. Another reason can be the important characteristics like the convenience of using multiple annotations, reliance, and priority that make this framework popular among developers and testers for test design. You can refer to the TestNG tutorial to learn why you should choose the TestNG framework.
You can push your abilities to do automated testing using TestNG and advance your career by earning a TestNG certification. Check out our TestNG certification.
Watch this complete tutorial to learn how you can leverage the capabilities of the TestNG framework for Selenium automation testing.
Get 100 minutes of automation test minutes FREE!!
