Class TestCaseXmlHelper

  • All Implemented Interfaces:
    java.lang.Iterable

    public class TestCaseXmlHelper
    extends java.lang.Object
    implements java.lang.Iterable
    Class for loading XML with generated test cases, being output from 'tcases' external tool.
    Assumes that each test case consists of same parameters. Can output content in following formats:
    • CSV
    • Map<String,String>
    • iterator
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static char CSV_SEPARATOR  
    • Constructor Summary

      Constructors 
      Constructor Description
      TestCaseXmlHelper​(java.io.File sourceXmlFile)  
      TestCaseXmlHelper​(java.io.InputStream sourceXmlStream)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.List<java.lang.String> getAllParameters()
      Get all parameter names as ordered List<String>.
      java.lang.String getCSVHeader()
      Get all parameters as CSV string separated by CSV_SEPARATOR=9.
      java.lang.String getCSVRow​(int rowNumber, java.lang.String... headers)  
      java.lang.String getCSVRow​(int rowNumber, java.util.List<java.lang.String> parameters)
      Get a test case (a "row") as a CSV row separated by CSV_SEPARATOR=9.
      int getRowCount()  
      java.util.Map<java.lang.String,​java.lang.String> getTestCase​(int index)
      Get test case ("a row") as a Map<String,String>
      java.lang.String getVar​(int testCaseNumber, java.lang.String variableName)  
      java.util.Iterator<java.util.Map<java.lang.String,​java.lang.String>> iterator()
      Get all test cases as an Iterator<String>
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Constructor Detail

      • TestCaseXmlHelper

        public TestCaseXmlHelper​(java.io.File sourceXmlFile)
                          throws javax.xml.parsers.ParserConfigurationException,
                                 org.xml.sax.SAXException,
                                 javax.xml.xpath.XPathExpressionException,
                                 java.io.IOException
        Throws:
        javax.xml.parsers.ParserConfigurationException
        org.xml.sax.SAXException
        javax.xml.xpath.XPathExpressionException
        java.io.IOException
      • TestCaseXmlHelper

        public TestCaseXmlHelper​(java.io.InputStream sourceXmlStream)
                          throws javax.xml.parsers.ParserConfigurationException,
                                 java.io.IOException,
                                 org.xml.sax.SAXException,
                                 javax.xml.xpath.XPathExpressionException
        Throws:
        javax.xml.parsers.ParserConfigurationException
        java.io.IOException
        org.xml.sax.SAXException
        javax.xml.xpath.XPathExpressionException
    • Method Detail

      • getVar

        public java.lang.String getVar​(int testCaseNumber,
                                       java.lang.String variableName)
      • getCSVRow

        public java.lang.String getCSVRow​(int rowNumber,
                                          java.lang.String... headers)
      • getCSVRow

        public java.lang.String getCSVRow​(int rowNumber,
                                          java.util.List<java.lang.String> parameters)
        Get a test case (a "row") as a CSV row separated by CSV_SEPARATOR=9.
        Parameters:
        rowNumber - Test case number
        parameters - Provide a list of parameters (getAllParameters) to get specific ordering.
        Acts as a CSV header.
        Returns:
        A String, single CSV row with specific ordering and separators.
      • getRowCount

        public int getRowCount()
      • getAllParameters

        public java.util.List<java.lang.String> getAllParameters()
        Get all parameter names as ordered List<String>. Use this to keep same parameter order when selecting rows.
        Returns:
        Ordered list of parameter names.
      • getCSVHeader

        public java.lang.String getCSVHeader()
        Get all parameters as CSV string separated by CSV_SEPARATOR=9.
        Returns:
        CSV header with all test case parameters and default separator.
      • getTestCase

        public java.util.Map<java.lang.String,​java.lang.String> getTestCase​(int index)
        Get test case ("a row") as a Map<String,String>
        Parameters:
        index - Requested test case number.
        Returns:
        Map of parameters for a given test case number.
      • iterator

        public java.util.Iterator<java.util.Map<java.lang.String,​java.lang.String>> iterator()
        Get all test cases as an Iterator<String>
        Specified by:
        iterator in interface java.lang.Iterable
        Returns:
        Iterator of test cases.