Class XmlAssert

java.lang.Object
org.assertj.core.api.AbstractAssert<XmlAssert,Object>
org.xmlunit.assertj3.XmlAssert
All Implemented Interfaces:
org.assertj.core.api.Assert<XmlAssert,Object>, org.assertj.core.api.Descriptable<XmlAssert>, org.assertj.core.api.ExtensionPoints<XmlAssert,Object>

public class XmlAssert extends org.assertj.core.api.AbstractAssert<XmlAssert,Object>
Entry point for fluent interface for writing assertions based on AssertJ library.

All types which are supported by Input.from(Object) can be used as input for assertThat(Object)

Simple Example

    import static org.xmlunit.assertj.XmlAssert.assertThat;

    final String xml = "<a><b attr=\"abc\"></b></a>";

    assertThat(xml).nodesByXPath("//a/b/@attr").exist();
    assertThat(xml).hasXPath("//a/b/@attr");
    assertThat(xml).doesNotHaveXPath("//a/b/c");
 

Example with namespace mapping

    String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
          "<feed xmlns=\"http://www.w3.org/2005/Atom\">" +
          "   <title>title</title>" +
          "   <entry>" +
          "       <title>title1</title>" +
          "       <id>id1</id>" +
          "   </entry>" +
          "</feed>";

    HashMap<String, String> prefix2Uri = new HashMap<String, String>();
    prefix2Uri.put("atom", "http://www.w3.org/2005/Atom");
    assertThat(xml)
          .withNamespaceContext(prefix2Uri)
          .hasXPath("//atom:feed/atom:entry/atom:id"));
 

Testing XPath expression value

    String xml = "<a><b attr=\"abc\"></b></a>";

    assertThat(xml).valueByXPath("//a/b/@attr").isEqualTo("abc");
    assertThat(xml).valueByXPath("count(//a/b)").isEqualTo(1);
 

Example with XML validation

    String xml = "<a><b attr=\"abc\"></b></a>";
    StreamSource xsd = new StreamSource(new File("schema.xsd"));

    assertThat(xml).isValid();
    assertThat(xml).isValidAgainst(xsd);
 

Example with XMLs comparision

    final String control = "<a><b attr=\"abc\"></b></a>";
    final String test = "<a><b attr=\"xyz\"></b></a>";

    assertThat(test).and(control).areIdentical();
    assertThat(test).and(control).areNotIdentical();
    assertThat(test).and(control).areSimilar();
    assertThat(test).and(control).areNotSimilar();

    assertThat(test).and(control)
          .normalizeWhitespace()
          .ignoreComments()
          .withNodeMatcher(new DefaultNodeMatcher(new MyElementSelector()))
          .withDifferenceEvaluator(DifferenceEvaluators.chain(
               DifferenceEvaluators.Default, new MyDifferenceEvaluator()));
          .areIdentical();
 
Since:
XMLUnit 2.8.1
  • Field Summary

    Fields inherited from class org.assertj.core.api.AbstractAssert

    actual, info, myself, objects, throwUnsupportedExceptionOnEquals
  • Method Summary

    Modifier and Type
    Method
    Description
    and(Object control)
    Create CompareAssert for given control XML source and actual XML source.
    static XmlAssert
    Factory method for XmlAssert
    void
    Equivalent for
    Equivalent for
    Check if actual value is not valid against W3C XML Schema
    isNotValidAgainst(Object... schemaSources)
    Check if actual value is not valid against schema provided by given sources
    Check if actual value is not valid against given schema
    Check if actual value is valid against W3C XML Schema
    isValidAgainst(Object... schemaSources)
    Check if actual value is valid against schema provided by given sources
    Check if actual value is valid against given schema
    Create MultipleNodeAssert from nodes selecting by given xPath.
    Create ValueAssert from value of given xPath expression.
    Sets the DocumentBuilderFactory to use when creating a Document from the XML input.
    Utility method used for creating a namespace context mapping to be used in XPath matching.
    Sets the XPathFactory to use for XPath related assertions.

    Methods inherited from class org.assertj.core.api.AbstractAssert

    asInstanceOf, asList, assertionError, asString, describedAs, descriptionText, doesNotHave, doesNotHaveSameClassAs, equals, extracting, extracting, failure, failureWithActualExpected, failWithActualExpectedAndMessage, failWithMessage, getWritableAssertionInfo, has, hashCode, hasSameClassAs, hasSameHashCodeAs, hasToString, inBinary, inHexadecimal, is, isElementOfCustomAssert, isEqualTo, isExactlyInstanceOf, isIn, isIn, isInstanceOf, isInstanceOfAny, isInstanceOfSatisfying, isNot, isNotEqualTo, isNotExactlyInstanceOf, isNotIn, isNotIn, isNotInstanceOf, isNotInstanceOfAny, isNotNull, isNotOfAnyClassIn, isNotSameAs, isNull, isOfAnyClassIn, isSameAs, matches, matches, newListAssertInstance, overridingErrorMessage, overridingErrorMessage, satisfies, satisfies, satisfiesAnyOf, satisfiesAnyOf, satisfiesAnyOf, setCustomRepresentation, setDescriptionConsumer, setPrintAssertionsDescription, throwAssertionError, usingComparator, usingComparator, usingDefaultComparator, usingRecursiveComparison, usingRecursiveComparison, withFailMessage, withFailMessage, withRepresentation, withThreadDumpOnError

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.assertj.core.api.Descriptable

    as, as, describedAs
  • Method Details

    • assertThat

      public static XmlAssert assertThat(Object o)
      Factory method for XmlAssert
      Parameters:
      o - object with type supported by Input.from(Object)
      Returns:
      a fresh XmlAssert instance
    • withDocumentBuilderFactory

      public XmlAssert withDocumentBuilderFactory(DocumentBuilderFactory dbf)
      Sets the DocumentBuilderFactory to use when creating a Document from the XML input.
      Parameters:
      dbf - factory to use
      Returns:
      this
      Throws:
      AssertionError - if the actual value is null.
    • withXPathFactory

      public XmlAssert withXPathFactory(XPathFactory xpf)
      Sets the XPathFactory to use for XPath related assertions.
      Parameters:
      xpf - factory to use
      Returns:
      this
      Throws:
      AssertionError - if the actual value is null.
    • withNamespaceContext

      public XmlAssert withNamespaceContext(Map<String,String> prefix2Uri)
      Utility method used for creating a namespace context mapping to be used in XPath matching.
      Parameters:
      prefix2Uri - prefix2Uri maps from prefix to namespace URI. It is used to resolve XML namespace prefixes in the XPath expression
      Returns:
      this
      Throws:
      AssertionError - if the actual value is null.
    • nodesByXPath

      public MultipleNodeAssert nodesByXPath(String xPath)
      Create MultipleNodeAssert from nodes selecting by given xPath.
      Parameters:
      xPath - XPath expression
      Returns:
      assert capturing the selected nodes
      Throws:
      AssertionError - if the xPath is blank.
      AssertionError - if the actual value is null.
      AssertionError - if the actual value provide invalid XML.
    • hasXPath

      public MultipleNodeAssert hasXPath(String xPath)
      Parameters:
      xPath - XPath expression
      Returns:
      assert capturing the selected nodes
    • doesNotHaveXPath

      public void doesNotHaveXPath(String xPath)
      Parameters:
      xPath - XPath expression
    • valueByXPath

      public ValueAssert valueByXPath(String xPath)
      Create ValueAssert from value of given xPath expression.
      Parameters:
      xPath - XPath expression
      Returns:
      Assert for the node's value
      Throws:
      AssertionError - if the xPath is blank.
      AssertionError - if the actual value is null.
      AssertionError - if the actual value provide invalid XML.
    • and

      public CompareAssert and(Object control)
      Create CompareAssert for given control XML source and actual XML source.
      Parameters:
      control - actual XML to compare object under test against
      Returns:
      assert for comparison
      Throws:
      AssertionError - if the actual value is null
      AssertionError - if the control value is null
    • isValid

      public XmlAssert isValid()
      Check if actual value is valid against W3C XML Schema
      Returns:
      this
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is invalid
    • isInvalid

      public XmlAssert isInvalid()
      Check if actual value is not valid against W3C XML Schema
      Returns:
      this
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is valid
    • isValidAgainst

      public XmlAssert isValidAgainst(Schema schema)
      Check if actual value is valid against given schema
      Parameters:
      schema - schema to validate against
      Returns:
      this
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is invalid
    • isNotValidAgainst

      public XmlAssert isNotValidAgainst(Schema schema)
      Check if actual value is not valid against given schema
      Parameters:
      schema - schema to validate against
      Returns:
      this
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is valid
    • isValidAgainst

      public XmlAssert isValidAgainst(Object... schemaSources)
      Check if actual value is valid against schema provided by given sources
      Parameters:
      schemaSources - schema documents to validate against
      Returns:
      this
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is invalid
    • isNotValidAgainst

      public XmlAssert isNotValidAgainst(Object... schemaSources)
      Check if actual value is not valid against schema provided by given sources
      Parameters:
      schemaSources - schema documents to validate against
      Returns:
      this
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is valid