public class XmlAssert extends org.assertj.core.api.AbstractAssert<XmlAssert,java.lang.Object>
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();
| Modifier and Type | Field and Description |
|---|---|
private javax.xml.parsers.DocumentBuilderFactory |
dbf |
private java.util.Map<java.lang.String,java.lang.String> |
prefix2Uri |
private javax.xml.xpath.XPathFactory |
xpf |
| Modifier | Constructor and Description |
|---|---|
private |
XmlAssert(java.lang.Object o) |
| Modifier and Type | Method and Description |
|---|---|
CompareAssert |
and(java.lang.Object control)
Create
CompareAssert for given control XML source and actual XML source. |
static XmlAssert |
assertThat(java.lang.Object o)
Factory method for
XmlAssert |
void |
doesNotHaveXPath(java.lang.String xPath)
Equivalent for
|
MultipleNodeAssert |
hasXPath(java.lang.String xPath)
Equivalent for
|
XmlAssert |
isInvalid()
Check if actual value is not valid against W3C XML Schema
|
XmlAssert |
isNotValidAgainst(java.lang.Object... schemaSources)
Check if actual value is not valid against schema provided by given sources
|
XmlAssert |
isNotValidAgainst(javax.xml.validation.Schema schema)
Check if actual value is not valid against given schema
|
XmlAssert |
isValid()
Check if actual value is valid against W3C XML Schema
|
XmlAssert |
isValidAgainst(java.lang.Object... schemaSources)
Check if actual value is valid against schema provided by given sources
|
XmlAssert |
isValidAgainst(javax.xml.validation.Schema schema)
Check if actual value is valid against given schema
|
MultipleNodeAssert |
nodesByXPath(java.lang.String xPath)
Create
MultipleNodeAssert from nodes selecting by given xPath. |
ValueAssert |
valueByXPath(java.lang.String xPath)
Create
ValueAssert from value of given xPath expression. |
XmlAssert |
withDocumentBuilderFactory(javax.xml.parsers.DocumentBuilderFactory dbf)
Sets the
DocumentBuilderFactory to use when creating a
Document from the XML input. |
XmlAssert |
withNamespaceContext(java.util.Map<java.lang.String,java.lang.String> prefix2Uri)
Utility method used for creating a namespace context mapping to be used in XPath matching.
|
XmlAssert |
withXPathFactory(javax.xml.xpath.XPathFactory xpf)
Sets the
XPathFactory to use for XPath related assertions. |
as, as, asInstanceOf, asList, asString, describedAs, describedAs, descriptionText, doesNotHave, doesNotHaveSameClassAs, equals, failWithMessage, getWritableAssertionInfo, has, hashCode, hasSameClassAs, hasSameHashCodeAs, hasToString, inBinary, inHexadecimal, is, isEqualTo, isExactlyInstanceOf, isIn, isIn, isInstanceOf, isInstanceOfAny, isInstanceOfSatisfying, isNot, isNotEqualTo, isNotExactlyInstanceOf, isNotIn, isNotIn, isNotInstanceOf, isNotInstanceOfAny, isNotNull, isNotOfAnyClassIn, isNotSameAs, isNull, isOfAnyClassIn, isSameAs, matches, matches, newListAssertInstance, overridingErrorMessage, satisfies, satisfies, satisfiesAnyOf, satisfiesAnyOf, setCustomRepresentation, throwAssertionError, usingComparator, usingComparator, usingDefaultComparator, withFailMessage, withRepresentation, withThreadDumpOnErrorprivate javax.xml.parsers.DocumentBuilderFactory dbf
private javax.xml.xpath.XPathFactory xpf
private java.util.Map<java.lang.String,java.lang.String> prefix2Uri
public static XmlAssert assertThat(java.lang.Object o)
XmlAsserto - object with type supported by Input.from(Object)public XmlAssert withDocumentBuilderFactory(javax.xml.parsers.DocumentBuilderFactory dbf)
DocumentBuilderFactory to use when creating a
Document from the XML input.java.lang.AssertionError - if the actual value is null.public XmlAssert withXPathFactory(javax.xml.xpath.XPathFactory xpf)
XPathFactory to use for XPath related assertions.java.lang.AssertionError - if the actual value is null.public XmlAssert withNamespaceContext(java.util.Map<java.lang.String,java.lang.String> prefix2Uri)
prefix2Uri - prefix2Uri maps from prefix to namespace URI. It is used to resolve
XML namespace prefixes in the XPath expressionjava.lang.AssertionError - if the actual value is null.public MultipleNodeAssert nodesByXPath(java.lang.String xPath)
MultipleNodeAssert from nodes selecting by given xPath.java.lang.AssertionError - if the xPath is blank.java.lang.AssertionError - if the actual value is null.java.lang.AssertionError - if the actual value provide invalid XML.public MultipleNodeAssert hasXPath(java.lang.String xPath)
nodesByXPath(xPath).exist()
public void doesNotHaveXPath(java.lang.String xPath)
nodesByXPath(xPath).doNotExist()
public ValueAssert valueByXPath(java.lang.String xPath)
ValueAssert from value of given xPath expression.java.lang.AssertionError - if the xPath is blank.java.lang.AssertionError - if the actual value is null.java.lang.AssertionError - if the actual value provide invalid XML.public CompareAssert and(java.lang.Object control)
CompareAssert for given control XML source and actual XML source.java.lang.AssertionError - if the actual value is nulljava.lang.AssertionError - if the control value is nullpublic XmlAssert isValid()
java.lang.AssertionError - if the actual value is null.java.lang.AssertionError - if the actual value is invalidpublic XmlAssert isInvalid()
java.lang.AssertionError - if the actual value is null.java.lang.AssertionError - if the actual value is validpublic XmlAssert isValidAgainst(javax.xml.validation.Schema schema)
java.lang.AssertionError - if the actual value is null.java.lang.AssertionError - if the actual value is invalidpublic XmlAssert isNotValidAgainst(javax.xml.validation.Schema schema)
java.lang.AssertionError - if the actual value is null.java.lang.AssertionError - if the actual value is validpublic XmlAssert isValidAgainst(java.lang.Object... schemaSources)
java.lang.AssertionError - if the actual value is null.java.lang.AssertionError - if the actual value is invalidpublic XmlAssert isNotValidAgainst(java.lang.Object... schemaSources)
java.lang.AssertionError - if the actual value is null.java.lang.AssertionError - if the actual value is valid