Search in sources :

Example 1 with PlaceholderDifferenceEvaluator

use of org.xmlunit.placeholder.PlaceholderDifferenceEvaluator in project irontest by zheng-wang.

the class XMLUtils method compareXML.

/**
 * @param control
 * @param test
 * @param namespaceAware
 * @return differences found, in a format for print
 */
public static String compareXML(String control, String test, boolean namespaceAware) {
    Object controlObject = control;
    Object testObject = test;
    // DiffBuilder.withDocumentBuilderFactory(factory);
    if (!namespaceAware) {
        try {
            controlObject = xmlStringToDOM(control);
            testObject = xmlStringToDOM(test);
        } catch (Exception e) {
            throw new RuntimeException(e.getCause().getMessage(), e);
        }
    }
    StringBuilder differencesSB = new StringBuilder();
    Diff diff;
    try {
        diff = DiffBuilder.compare(controlObject).withTest(testObject).normalizeWhitespace().withDifferenceEvaluator(DifferenceEvaluators.chain(DifferenceEvaluators.Default, new PlaceholderDifferenceEvaluator("#\\{", null))).build();
    } catch (XMLUnitException e) {
        throw new RuntimeException(e.getCause().getMessage(), e);
    }
    if (diff.hasDifferences()) {
        Iterator it = diff.getDifferences().iterator();
        while (it.hasNext()) {
            Difference difference = (Difference) it.next();
            if (difference.getResult() == ComparisonResult.DIFFERENT) {
                // ignore SIMILAR comparison results
                if (differencesSB.length() > 0) {
                    differencesSB.append("\n");
                }
                differencesSB.append(difference.getComparison().toString());
            }
        }
    }
    return differencesSB.toString();
}
Also used : XMLUnitException(org.xmlunit.XMLUnitException) Diff(org.xmlunit.diff.Diff) Iterator(java.util.Iterator) Difference(org.xmlunit.diff.Difference) PlaceholderDifferenceEvaluator(org.xmlunit.placeholder.PlaceholderDifferenceEvaluator) XPathExpressionException(javax.xml.xpath.XPathExpressionException) TransformerException(javax.xml.transform.TransformerException) XMLUnitException(org.xmlunit.XMLUnitException) IOException(java.io.IOException) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException) SAXException(org.xml.sax.SAXException)

Aggregations

IOException (java.io.IOException)1 Iterator (java.util.Iterator)1 ParserConfigurationException (javax.xml.parsers.ParserConfigurationException)1 TransformerException (javax.xml.transform.TransformerException)1 XPathExpressionException (javax.xml.xpath.XPathExpressionException)1 SAXException (org.xml.sax.SAXException)1 XMLUnitException (org.xmlunit.XMLUnitException)1 Diff (org.xmlunit.diff.Diff)1 Difference (org.xmlunit.diff.Difference)1 PlaceholderDifferenceEvaluator (org.xmlunit.placeholder.PlaceholderDifferenceEvaluator)1