Interface ContractTemplate

All Known Implementing Classes:
CompositeContractTemplate, HandlebarsContractTemplate

public interface ContractTemplate
Contract for defining templated responses.

If no implementation is provided then Handlebars will be picked as a default implementation.

Since:
1.1.0
Author:
Marcin Grzejszczak
  • Method Details

    • startsWithTemplate

      default boolean startsWithTemplate(String text)
      Parameters:
      text - text to assert
      Returns:
      asserts whether the given text starts with proper opening template.
    • startsWithEscapedTemplate

      default boolean startsWithEscapedTemplate(String text)
      Parameters:
      text - text to assert
      Returns:
      asserts whether the given text starts with proper opening template for escaped value.
    • openingTemplate

      String openingTemplate()
      Handlebars is using the Mustache template thus it looks like this {{ Mustache }}. In this case the opening template would return {{
      Returns:
      opening template for a variable
    • closingTemplate

      String closingTemplate()
      Handlebars is using the Mustache template thus it looks like this {{ Mustache }}. In this case the closing template would return }}
      Returns:
      closing template for a variable
    • escapedOpeningTemplate

      default String escapedOpeningTemplate()
      Handlebars is using the Mustache template thus it looks like this {{{ Mustache }}}. In this case the opening template would return {{{
      Returns:
      escaped opening template for a variable
    • escapedClosingTemplate

      default String escapedClosingTemplate()
      Handlebars is using the Mustache template thus it looks like this {{{ Mustache }}}. In this case the closing template would return }}}
      Returns:
      escaped closing template for a variable
    • url

      String url()
      Returns:
      returns the template for retrieving a URL path and query from request
    • query

      String query(String key)
      Parameters:
      key - query parameter key
      Returns:
      the template for retrieving first value of a query parameter e.g. {{ request.query.search }}
    • query

      String query(String key, int index)
      Parameters:
      key - query parameter key
      index - query parameter index
      Returns:
      the template for retrieving nth value of a query parameter (zero indexed) e.g. {{ request.query.search.[5] }}
    • path

      String path()
      Returns:
      the template for retrieving a URL path
    • path

      String path(int index)
      Parameters:
      index - request path index
      Returns:
      the template for retrieving nth value of a URL path (zero indexed) e.g. {{ request.path.[2] }}
    • header

      String header(String key)
      Parameters:
      key - headers key
      Returns:
      the template for retrieving the first value of a request header e.g. {{ request.headers.X-Request-Id }}
    • header

      String header(String key, int index)
      Parameters:
      key - headers key
      index - headers index
      Returns:
      the template for retrieving the nth value of a request header (zero indexed) e.g. {{ request.headers.X-Request-Id.[5] }}
    • cookie

      String cookie(String key)
      Parameters:
      key - cookie key
      Returns:
      the template for retrieving the first value of a cookie with certain key
    • body

      String body()
      Returns:
      request body text (avoid for non-text bodies) e.g. {{ request.body }} . The body will not be escaped so you won't be able to directly embed it in a JSON for example.
    • body

      String body(String jsonPath)
      Parameters:
      jsonPath - json path value
      Returns:
      request body text for the given JsonPath. e.g. {{ jsonPath request.body '$.a.b.c' }}
    • escapedUrl

      default String escapedUrl()
      Returns:
      the template for retrieving a escaped URL path and query from request
    • escapedQuery

      default String escapedQuery(String key)
      Parameters:
      key - query parameter key
      Returns:
      the template for retrieving escaped first value of a query parameter e.g. {{{ request.query.search }}}
    • escapedQuery

      default String escapedQuery(String key, int index)
      Parameters:
      key - query parameter key
      index - query parameter index
      Returns:
      the template for retrieving esacped nth value of a query parameter (zero indexed) e.g. {{{ request.query.search.[5] }}}
    • escapedPath

      default String escapedPath()
      Returns:
      the template for retrieving a escaped URL path
    • escapedPath

      default String escapedPath(int index)
      Parameters:
      index - path index
      Returns:
      the template for retrieving escaped nth value of a URL path (zero indexed) e.g. {{{ request.path.[2] }}}
    • escapedHeader

      default String escapedHeader(String key)
      Parameters:
      key - headers key
      Returns:
      the template for retrieving the escaped first value of a request header e.g. {{{ request.headers.X-Request-Id }}}
    • escapedHeader

      default String escapedHeader(String key, int index)
      Parameters:
      key - headers key
      index - headers index
      Returns:
      the template for retrieving the esacaped nth value of a request header (zero indexed) e.g. {{{ request.headers.X-Request-Id.[5] }}}
    • escapedCookie

      default String escapedCookie(String key)
      Parameters:
      key - cookie key
      Returns:
      the template for retrieving the escaped first value of a cookie with certain key
    • escapedBody

      default String escapedBody()
      Returns:
      request body text (avoid for non-text bodies) e.g. {{{ request.body }}} . The body will not be escaped so you won't be able to directly embed it in a JSON for example.
    • escapedBody

      default String escapedBody(String jsonPath)
      Parameters:
      jsonPath - json path value
      Returns:
      request body text for the given JsonPath. e.g. {{{ jsonPath request.body '$.a.b.c' }}}