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

## Constructor Summary

Constructors
Constructor
Description
`XpathExpectationsHelper(String expression, Map<String,String> namespaces, Object... args)`
XpathExpectationsHelper constructor.

## Method Summary

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 a `Node`, and assert it with the given `Matcher<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<? super Integer> matcher)`
Apply the XPath expression and assert the resulting content with the given Hamcrest matcher.
`void`
`assertNodeList(byte[] content, String encoding, Matcher<? super NodeList> matcher)`
Parse the content, evaluate the XPath expression as a `NodeList`, and assert it with the given `Matcher<NodeList>`.
`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.
`<T> T`
`evaluateXpath(byte[] content, String encoding, Class<T> targetClass)`
Evaluate the XPath and return the resulting value.
`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 a `Document`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### XpathExpectationsHelper

public XpathExpectationsHelper(String expression, @Nullable Map<String,String> namespaces, Object... args) throws XPathExpressionException
XpathExpectationsHelper constructor.

Parameters:
  `expression` - the XPath expression
  `namespaces` - the XML namespaces referenced in the XPath expression, or `null`
  `args` - arguments to parameterize the XPath expression with using the formatting specifiers defined in `String.format(String, Object...)`
Throws:
  `XPathExpressionException` - if expression compilation failed

## Method Details

### getXpathExpression

protected XPathExpression getXpathExpression()
Return the compiled XPath expression.

### assertNode

public void assertNode(byte[] content, @Nullable String encoding, Matcher<? super Node> matcher) throws Exception
Parse the content, evaluate the XPath expression as a `Node`, and assert it with the given `Matcher<Node>`.

Throws:
  `Exception`

### assertNodeList

public void assertNodeList(byte[] content, @Nullable String encoding, Matcher<? super NodeList> matcher) throws Exception
Parse the content, evaluate the XPath expression as a `NodeList`, and assert it with the given `Matcher<NodeList>`.

Throws:
  `Exception`
Since:
  5.2.2

### exists

public void exists(byte[] content, @Nullable 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, @Nullable 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, @Nullable String encoding, Matcher<? super 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, @Nullable 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, @Nullable 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, @Nullable 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, @Nullable 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, @Nullable 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, @Nullable 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

### evaluateXpath

@Nullable public <T> T evaluateXpath(byte[] content, @Nullable String encoding, Class<T> targetClass) throws Exception
Evaluate the XPath and return the resulting value.

Parameters:
  `content` - the content to evaluate against
  `encoding` - the encoding to use (optionally)
  `targetClass` - the target class, one of Number, String, Boolean, org.w3c.Node, or NodeList
Throws:
  `Exception` - if content parsing or expression evaluation fails
Since:
  5.1

### parseXmlByteArray

protected Document parseXmlByteArray(byte[] xml, @Nullable String encoding) throws Exception
Parse the given XML content to a `Document`.

Parameters:
  `xml` - the content to parse
  `encoding` - optional content encoding, if provided as metadata (for example, in HTTP headers)
Returns:
  the parsed document
Throws:
  `Exception`

### evaluateXpath

@Nullable 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