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