Class MockRestRequestMatchers

java.lang.Object
org.springframework.test.web.client.match.MockRestRequestMatchers

public abstract class MockRestRequestMatchers extends Object
Static factory methods for RequestMatcher classes. Typically used to provide input for MockRestServiceServer.expect(RequestMatcher).

Eclipse Users

Consider adding this class as a Java editor favorite. To navigate to this setting, open the Preferences and type "favorites".

Since:
3.2
Author:
Craig Walls, Rossen Stoyanchev, Sam Brannen, Simon Baslé
  • Constructor Details

    • MockRestRequestMatchers

      public MockRestRequestMatchers()
  • Method Details

    • anything

      public static RequestMatcher anything()
      Match to any request.
    • method

      public static RequestMatcher method(HttpMethod method)
      Assert the HttpMethod of the request.
      Parameters:
      method - the HTTP method
      Returns:
      the request matcher
    • requestTo

      public static RequestMatcher requestTo(Matcher<? super String> matcher)
      Assert the request URI string with the given Hamcrest matcher.
      Parameters:
      matcher - the String matcher for the expected URI
      Returns:
      the request matcher
    • requestTo

      public static RequestMatcher requestTo(String expectedUri)
      Assert the request URI matches the given string.
      Parameters:
      expectedUri - the expected URI
      Returns:
      the request matcher
    • requestToUriTemplate

      public static RequestMatcher requestToUriTemplate(String expectedUri, Object... uriVars)
      Variant of requestTo(URI) that prepares the URI from a URI template plus optional variables via UriComponentsBuilder including encoding.
      Parameters:
      expectedUri - the expected URI template
      uriVars - zero or more URI variables to populate the expected URI
      Returns:
      the request matcher
    • requestTo

      public static RequestMatcher requestTo(URI uri)
      Expect a request to the given URI.
      Parameters:
      uri - the expected URI
      Returns:
      the request matcher
    • queryParam

      public static RequestMatcher queryParam(String name, Matcher<? super List<String>> matcher)
      Assert request query parameter values with the given Hamcrest matcher, matching on the entire List of values.

      For example, this can be used to check that the list of query parameter values has at least one value matching a given Hamcrest matcher (such as Matchers.hasItem(Matcher)), that every value in the list matches common criteria (such as Matchers.everyItem(Matcher)), that each value in the list matches corresponding dedicated criteria (such as Matchers.contains(Matcher[])), etc.

      Parameters:
      name - the name of the query parameter whose value(s) will be asserted
      matcher - the Hamcrest matcher to apply to the entire list of values for the given query parameter
      Since:
      5.3.26
      See Also:
    • queryParam

      @SafeVarargs public static RequestMatcher queryParam(String name, Matcher<? super String>... matchers)
      Assert request query parameter values with the given Hamcrest matcher(s).

      If the query parameter value list is larger than the number of provided matchers, no matchers will be applied to the extra query parameter values, effectively ignoring the additional parameter values. If the number of provided matchers exceeds the number of query parameter values, an AssertionError will be thrown to signal the mismatch.

      See queryParam(String, Matcher) for a variant which accepts a Matcher that applies to the entire list of values as opposed to applying only to individual values.

      Parameters:
      name - the name of the query parameter whose value(s) will be asserted
      matchers - the Hamcrest matchers to apply to individual query parameter values; the nth matcher is applied to the nth query parameter value
      See Also:
    • queryParam

      public static RequestMatcher queryParam(String name, String... expectedValues)
      Assert request query parameter values.

      If the query parameter value list is larger than the number of expectedValues, no assertions will be applied to the extra query parameter values, effectively ignoring the additional parameter values. If the number of expectedValues exceeds the number of query parameter values, an AssertionError will be thrown to signal the mismatch.

      See queryParam(String, Matcher) for a variant which accepts a Hamcrest Matcher that applies to the entire list of values as opposed to asserting only individual values.

      Parameters:
      name - the name of the query parameter whose value(s) will be asserted
      expectedValues - the expected values of individual query parameter values; the nth expected value is compared to the nth query parameter value
      See Also:
    • header

      public static RequestMatcher header(String name, Matcher<? super List<String>> matcher)
      Assert request header values with the given Hamcrest matcher, matching on the entire List of values.

      For example, this can be used to check that the list of header values has at least one value matching a given Hamcrest matcher (such as Matchers.hasItem(Matcher)), that every value in the list matches common criteria (such as Matchers.everyItem(Matcher)), that each value in the list matches corresponding dedicated criteria (such as Matchers.contains(Matcher[])), etc.

      Parameters:
      name - the name of the header whose value(s) will be asserted
      matcher - the Hamcrest matcher to apply to the entire list of values for the given header
      Since:
      5.3.26
      See Also:
    • header

      @SafeVarargs public static RequestMatcher header(String name, Matcher<? super String>... matchers)
      Assert request header values with the given Hamcrest matcher(s).

      If the header value list is larger than the number of provided matchers, no matchers will be applied to the extra header values, effectively ignoring the additional header values. If the number of provided matchers exceeds the number of header values, an AssertionError will be thrown to signal the mismatch.

      See header(String, Matcher) for a variant which accepts a Hamcrest Matcher that applies to the entire list of values as opposed to applying only to individual values.

      Parameters:
      name - the name of the header whose value(s) will be asserted
      matchers - the Hamcrest matchers to apply to individual header values; the nth matcher is applied to the nth header value
      See Also:
    • header

      public static RequestMatcher header(String name, String... expectedValues)
      Assert request header values.

      If the header value list is larger than the number of expectedValues, no matchers will be applied to the extra header values, effectively ignoring the additional header values. If the number of expectedValues exceeds the number of header values, an AssertionError will be thrown to signal the mismatch.

      See header(String, Matcher) for a variant which accepts a Hamcrest Matcher that applies to the entire list of values as opposed to applying only to individual values.

      Parameters:
      name - the name of the header whose value(s) will be asserted
      expectedValues - the expected values of individual header values; the nth expected value is compared to the nth header value
      See Also:
    • headerDoesNotExist

      public static RequestMatcher headerDoesNotExist(String name)
      Assert that the given request header does not exist.
      Since:
      5.2
    • content

      public static ContentRequestMatchers content()
      Access to request body matchers.
    • jsonPath

      public static JsonPathRequestMatchers jsonPath(String expression, Object... args)
      Access to request body matchers using a JsonPath expression to inspect a specific subset of the body. The JSON path expression can be a parameterized string using formatting specifiers as defined in String.format(String, Object...).
      Parameters:
      expression - the JSON path optionally parameterized with arguments
      args - arguments to parameterize the JSON path expression with
    • jsonPath

      public static <T> RequestMatcher jsonPath(String expression, Matcher<? super T> matcher)
      Access to request body matchers using a JsonPath expression to inspect a specific subset of the body and a Hamcrest match for asserting the value found at the JSON path.
      Parameters:
      expression - the JSON path expression
      matcher - a matcher for the value expected at the JSON path
    • xpath

      public static XpathRequestMatchers xpath(String expression, Object... args) throws XPathExpressionException
      Access to request body matchers using an XPath to inspect a specific subset of the body. The XPath expression can be a parameterized string using formatting specifiers as defined in String.format(String, Object...).
      Parameters:
      expression - the XPath optionally parameterized with arguments
      args - arguments to parameterize the XPath expression with
      Throws:
      XPathExpressionException
    • xpath

      public static XpathRequestMatchers xpath(String expression, Map<String,String> namespaces, Object... args) throws XPathExpressionException
      Access to response body matchers using an XPath to inspect a specific subset of the body. The XPath expression can be a parameterized string using formatting specifiers as defined in String.format(String, Object...).
      Parameters:
      expression - the XPath optionally parameterized with arguments
      namespaces - the namespaces referenced in the XPath expression
      args - arguments to parameterize the XPath expression with
      Throws:
      XPathExpressionException