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, withThreadDumpOnError
private 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)
XmlAssert
o
- 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 null
java.lang.AssertionError
- if the control value is null
public 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