Package org.springframework.test.util
Class XpathExpectationsHelper
- java.lang.Object
- org.springframework.test.util.XpathExpectationsHelper
public class XpathExpectationsHelper extends Object
A helper class for applying assertions via XPath expressions.- Since:
- 3.2
- Author:
- Rossen Stoyanchev
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
assertBoolean(byte[] content, String encoding, boolean expectedValue)
Apply the XPath expression and assert the resulting content as a Boolean.void
assertNode(byte[] content, String encoding, Matcher<? super Node> matcher)
Parse the content, evaluate the XPath expression as aNode
, and assert it with the givenMatcher<Node>
.void
assertNodeCount(byte[] content, String encoding, int expectedCount)
Apply the XPath expression and assert the resulting content as an integer.void
assertNodeCount(byte[] content, String encoding, Matcher<Integer> matcher)
Apply the XPath expression and assert the resulting content with the given Hamcrest matcher.void
assertNumber(byte[] content, String encoding, Double expectedValue)
Apply the XPath expression and assert the resulting content as a Double.void
assertNumber(byte[] content, String encoding, Matcher<? super Double> matcher)
Apply the XPath expression and assert the resulting content with the given Hamcrest matcher.void
assertString(byte[] content, String encoding, String expectedValue)
Apply the XPath expression and assert the resulting content as a String.void
assertString(byte[] content, String encoding, Matcher<? super String> matcher)
Apply the XPath expression and assert the resulting content with the given Hamcrest matcher.void
doesNotExist(byte[] content, String encoding)
Apply the XPath expression and assert the resulting content does not exist.protected <T> T
evaluateXpath(Document document, QName evaluationType, Class<T> expectedClass)
Apply the XPath expression to given document.void
exists(byte[] content, String encoding)
Apply the XPath expression and assert the resulting content exists.protected XPathExpression
getXpathExpression()
Return the compiled XPath expression.protected Document
parseXmlByteArray(byte[] xml, String encoding)
Parse the given XML content to aDocument
.
Constructor Detail
XpathExpectationsHelper
public XpathExpectationsHelper(String expression, Map<String,String> namespaces, Object... args) throws XPathExpressionException
XpathExpectationsHelper constructor.- Parameters:
expression
- the XPath expressionnamespaces
- XML namespaces referenced in the XPath expression, ornull
args
- arguments to parameterize the XPath expression with using the formatting specifiers defined inString.format(String, Object...)
- Throws:
XPathExpressionException
- if expression compilation failed
Method Detail
getXpathExpression
protected XPathExpression getXpathExpression()
Return the compiled XPath expression.
assertNode
public void assertNode(byte[] content, String encoding, Matcher<? super Node> matcher) throws Exception
Parse the content, evaluate the XPath expression as aNode
, and assert it with the givenMatcher<Node>
.- Throws:
Exception
parseXmlByteArray
protected Document parseXmlByteArray(byte[] xml, String encoding) throws Exception
Parse the given XML content to aDocument
.- Parameters:
xml
- the content to parseencoding
- optional content encoding, if provided as metadata (e.g. in HTTP headers)- Returns:
- the parsed document
- Throws:
Exception
evaluateXpath
protected <T> T evaluateXpath(Document document, QName evaluationType, Class<T> expectedClass) throws XPathExpressionException
Apply the XPath expression to given document.- Throws:
XPathExpressionException
- if expression evaluation failed
exists
public void exists(byte[] content, String encoding) throws Exception
Apply the XPath expression and assert the resulting content exists.- Throws:
Exception
- if content parsing or expression evaluation fails
doesNotExist
public void doesNotExist(byte[] content, String encoding) throws Exception
Apply the XPath expression and assert the resulting content does not exist.- Throws:
Exception
- if content parsing or expression evaluation fails
assertNodeCount
public void assertNodeCount(byte[] content, String encoding, Matcher<Integer> matcher) throws Exception
Apply the XPath expression and assert the resulting content with the given Hamcrest matcher.- Throws:
Exception
- if content parsing or expression evaluation fails
assertNodeCount
public void assertNodeCount(byte[] content, String encoding, int expectedCount) throws Exception
Apply the XPath expression and assert the resulting content as an integer.- Throws:
Exception
- if content parsing or expression evaluation fails
assertString
public void assertString(byte[] content, String encoding, Matcher<? super String> matcher) throws Exception
Apply the XPath expression and assert the resulting content with the given Hamcrest matcher.- Throws:
Exception
- if content parsing or expression evaluation fails
assertString
public void assertString(byte[] content, String encoding, String expectedValue) throws Exception
Apply the XPath expression and assert the resulting content as a String.- Throws:
Exception
- if content parsing or expression evaluation fails
assertNumber
public void assertNumber(byte[] content, String encoding, Matcher<? super Double> matcher) throws Exception
Apply the XPath expression and assert the resulting content with the given Hamcrest matcher.- Throws:
Exception
- if content parsing or expression evaluation fails
assertNumber
public void assertNumber(byte[] content, String encoding, Double expectedValue) throws Exception
Apply the XPath expression and assert the resulting content as a Double.- Throws:
Exception
- if content parsing or expression evaluation fails
assertBoolean
public void assertBoolean(byte[] content, String encoding, boolean expectedValue) throws Exception
Apply the XPath expression and assert the resulting content as a Boolean.- Throws:
Exception
- if content parsing or expression evaluation fails