Class TestClientDefaults<T extends TestClient<?>>

java.lang.Object
ru.vyarus.dropwizard.guice.test.client.builder.TestClientDefaults<T>
Type Parameters:
T - actual client type
Direct Known Subclasses:
TestClient

public abstract class TestClientDefaults<T extends TestClient<?>> extends Object
Defaults configuration for TestClient. Extracted to make client class more readable.

Defaults could be declared for client to be applied in all clients. Sub-clients, created from this client will inherit these defaults.

Since:
23.09.2025
  • Field Details

    • defaults

      protected final TestRequestConfig defaults
      Default configuration for all requests (and sub clients).
  • Constructor Details

    • TestClientDefaults

      public TestClientDefaults(TestRequestConfig defaults)
      Creates new defaults instance.
      Parameters:
      defaults - default configuration for all requests (and sub clients)
  • Method Details

    • defaultHeader

      public T defaultHeader(org.eclipse.jetty.http.HttpHeader name, Object value)
      Configure default header for all requests (Invocation.Builder.header(String, Object)).

      Multiple calls override previous value.

      Parameters:
      name - header name
      value - header value
      Returns:
      builder instance for chained calls
    • defaultHeader

      public T defaultHeader(String name, Object value)
      Configure default header for all requests (Invocation.Builder.header(String, Object)).

      Multiple calls override previous value.

      Parameters:
      name - header name
      value - header value
      Returns:
      builder instance for chained calls
    • defaultHeader

      public T defaultHeader(org.eclipse.jetty.http.HttpHeader name, Supplier<Object> supplier)
      Configure default header for all requests (Invocation.Builder.header(String, Object)).

      Multiple calls override previous value.

      Parameters:
      name - header name
      supplier - header value supplier
      Returns:
      builder instance for chained calls
    • defaultHeader

      public T defaultHeader(String name, Supplier<Object> supplier)
      Configure default header for all requests (Invocation.Builder.header(String, Object)).

      Multiple calls override previous value.

      Parameters:
      name - header name
      supplier - header value supplier
      Returns:
      builder instance for chained calls
    • defaultQueryParam

      public T defaultQueryParam(String name, Object value)
      Configure default query parameter for all requests (WebTarget.queryParam(String, Object...)).

      Note: jersey api supports multiple query parameters with the same name (in this case multiple parameters added). The same result could be achieved by passing list or array into this api.

      Multiple calls with the same name override the previous value (the only way to specify multiple values is using list or array as value).

      Parameters:
      name - query parameter name
      value - parameter value (list or array for multiple values)
      Returns:
      builder instance for chained calls
    • defaultQueryParam

      public T defaultQueryParam(String name, Supplier<Object> supplier)
      Configure default query parameter for all requests (WebTarget.queryParam(String, Object...)).

      Note: jersey api supports multiple query parameters with the same name (in this case multiple parameters added). The same result could be achieved by passing list or array into this api.

      Multiple calls with the same name override the previous value (the only way to specify multiple values is using list or array as value).

      Parameters:
      name - query parameter name
      supplier - value supplier (list or array for multiple values)
      Returns:
      builder instance for chained calls
    • defaultMatrixParam

      public T defaultMatrixParam(String name, Object value)
      Configure default matrix parameter for all requests (WebTarget.matrixParam(String, Object...)).

      Note: jersey api supports multiple matrix parameters with the same name (in this case multiple parameters added). The same result could be achieved by passing list or array into this api.

      Multiple calls with the same name override the previous value (the only way to specify multiple values is using list or array as value).

      Parameters:
      name - matrix parameter name
      value - parameter value (list or array for multiple values)
      Returns:
      builder instance for chained calls
    • defaultMatrixParam

      public T defaultMatrixParam(String name, Supplier<Object> supplier)
      Configure default matrix parameter for all requests (WebTarget.matrixParam(String, Object...)).

      Note: jersey api supports multiple matrix parameters with the same name (in this case multiple parameters added). The same result could be achieved by passing list or array into this api.

      Multiple calls with the same name override the previous value (the only way to specify multiple values is using list or array as value).

      Parameters:
      name - matrix parameter name
      supplier - value supplier (list or array for multiple values)
      Returns:
      builder instance for chained calls
    • defaultPathParam

      public T defaultPathParam(String name, Object value)
      Configure default path parameter for all requests (WebTarget.resolveTemplateFromEncoded(String, Object)).

      Note: parameter value assumed to be encoded to be able to specify matrix parameters (in the middle of the path): pathParam("var", "/path;var=1;val=2").

      Parameters:
      name - parameter name
      value - parameter value
      Returns:
      builder instance for chained calls
    • defaultPathParam

      public T defaultPathParam(String name, Supplier<Object> supplier)
      Configure default path parameter for all requests (WebTarget.resolveTemplateFromEncoded(String, Object)).
      Parameters:
      name - parameter name
      supplier - parameter value supplier
      Returns:
      builder instance for chained calls
    • defaultProperty

      public T defaultProperty(String name, Object value)
      Configure default jersey client property applied to all requests (JerseyClient.property(String, Object)).

      Multiple calls override previous value.

      Parameters:
      name - property name
      value - property value
      Returns:
      builder instance for chained calls
      See Also:
      • ClientProperties
    • defaultProperty

      public T defaultProperty(String name, Supplier<Object> supplier)
      Configure default jersey client property applied to all requests (JerseyClient.property(String, Object)).

      Multiple calls override previous value.

      Parameters:
      name - property name
      supplier - property value supplier
      Returns:
      builder instance for chained calls
      See Also:
      • ClientProperties
    • defaultRegister

      public T defaultRegister(Class<?> type)
      Configure default jersey client extension for all requests (JerseyClient.register(Class)). Could be useful, for example, to register custom MessageBodyReader.

      Multiple registrations of the same class will be ignored (extensions tracked by type).

      Parameters:
      type - extension class
      Returns:
      builder instance for chained calls
    • defaultRegister

      public T defaultRegister(Object extension)
      Configure default jersey client extension for all requests (JerseyClient.register(Object)). Could be useful, for example, to register custom MessageBodyReader (as instance).

      When called with different instances of the same class: only the latest registration will be used (extensions tracked by type).

      Parameters:
      extension - extensions instance
      Returns:
      builder instance for chained calls
    • defaultRegister

      public <K> T defaultRegister(Class<K> type, Supplier<K> supplier)
      Configure default jersey client extension for all requests (JerseyClient.register(Object)). Supplier could return either class or extension instance.

      When called with different instances of the same class: only the latest registration will be used (extensions tracked by type).

      Type Parameters:
      K - extension type
      Parameters:
      type - extension type
      supplier - extension instance or null (for class)
      Returns:
      builder instance for chained calls
    • defaultFormDateFormatter

      public T defaultFormDateFormatter(DateFormat formatter)
      Configure default java.util date formatter for form fields (used in TestClient.buildForm(String, Object...)).
      Parameters:
      formatter - date formatter
      Returns:
      builder instance for chained calls
      See Also:
    • defaultFormDateTimeFormatter

      public T defaultFormDateTimeFormatter(DateTimeFormatter formatter)
      Configure default java.time formatter for form fields (used in TestClient.buildForm(String, Object...)).
      Parameters:
      formatter - date formatter
      Returns:
      builder instance for chained calls
      See Also:
    • defaultFormDateFormat

      public T defaultFormDateFormat(String format)
      Shortcut to configure both date formatters with the same pattern.
      Parameters:
      format - format
      Returns:
      builder instance for chained calls
      See Also:
    • defaultCookie

      public T defaultCookie(String name, String value)
      Configure default cookie for all requests (Invocation.Builder.cookie(jakarta.ws.rs.core.Cookie).

      Multiple calls override previous value.

      Parameters:
      name - cookie name
      value - cookie value
      Returns:
      builder instance for chained calls
      See Also:
      • NewCookie
    • defaultCookie

      public T defaultCookie(jakarta.ws.rs.core.Cookie cookie)
      Configure default cookie for all requests (Invocation.Builder.cookie(jakarta.ws.rs.core.Cookie).

      Use cookie builder: new NewCookie.Builder(name).value(value).build().

      Multiple calls override previous value.

      Parameters:
      cookie - cookie value
      Returns:
      builder instance for chained calls
      See Also:
      • NewCookie
    • defaultCookie

      public T defaultCookie(String name, Supplier<jakarta.ws.rs.core.Cookie> supplier)
      Configure default cookie for all requests (Invocation.Builder.cookie(jakarta.ws.rs.core.Cookie).

      Use cookie builder: new NewCookie.Builder(name).value(value).build().

      Multiple calls override previous value.

      Parameters:
      name - name
      supplier - value suppler
      Returns:
      builder instance for chained calls
      See Also:
      • NewCookie
    • defaultAccept

      public T defaultAccept(String... accept)
      Configure default Accept header for all requests (Invocation.Builder.accept(String...)).

      Multiple calls override previous value.

      Parameters:
      accept - media types required for response
      Returns:
      builder instance for chained calls
      See Also:
      • MediaType
    • defaultAccept

      public T defaultAccept(jakarta.ws.rs.core.MediaType... accept)
      Configure default Accept header for all requests (Invocation.Builder.accept(String...)).

      Multiple calls override previous value.

      Parameters:
      accept - media types required for response
      Returns:
      builder instance for chained calls
      See Also:
      • MediaType
    • defaultLanguage

      public T defaultLanguage(String... languages)
      Configure default Accept-Language header for all requests (Invocation.Builder.acceptLanguage(String...)).

      Multiple calls override previous value.

      Parameters:
      languages - languages to accept
      Returns:
      builder instance for chained calls
    • defaultLanguage

      public T defaultLanguage(Locale... languages)
      Configure default Accept-Language header for all requests (Invocation.Builder.acceptLanguage(String...)).

      Multiple calls override previous value.

      Parameters:
      languages - languages to accept
      Returns:
      builder instance for chained calls
    • defaultEncoding

      public T defaultEncoding(String... encodings)
      Configure default Accept-Encoding header for all requests (Invocation.Builder.acceptEncoding(String...)).

      Multiple calls override previous value.

      Parameters:
      encodings - encodings to accept
      Returns:
      builder instance for chained calls
    • defaultCacheControl

      public T defaultCacheControl(String cacheControl)
      Configure default Cache-Control header for all requests (Invocation.Builder.cacheControl(CacheControl)).

      Multiple calls override previous value.

      Parameters:
      cacheControl - cache control header value (string) to apply to request.
      Returns:
      builder instance for chained calls
    • defaultCacheControl

      public T defaultCacheControl(jakarta.ws.rs.core.CacheControl cacheControl)
      Configure default Cache-Control header for all requests (Invocation.Builder.cacheControl(CacheControl)).

      Multiple calls override previous value.

      Parameters:
      cacheControl - cache control settings to apply to request.
      Returns:
      builder instance for chained calls
    • defaultDebug

      public T defaultDebug(boolean debug)
      Enable requests' debugging: print to console what defaults was configured (and where) and how a request object was configured.
      Parameters:
      debug - true to enable debug
      Returns:
      builder instance for chained calls
    • defaultPathConfiguration

      public T defaultPathConfiguration(Function<jakarta.ws.rs.client.WebTarget,jakarta.ws.rs.client.WebTarget> modifier)
      Configure default request WebTarget modifier for all requests.
      Parameters:
      modifier - function, applying request target configuration
      Returns:
      builder instance for chained calls
    • defaultRequestConfiguration

      public T defaultRequestConfiguration(Consumer<jakarta.ws.rs.client.Invocation.Builder> modifier)
      Configure default request Invocation.Builder modifier for all requests.
      Parameters:
      modifier - consumer, applying request configuration
      Returns:
      builder instance for chained calls
    • getDefaults

      public TestRequestConfig getDefaults()
      Could be used for manual appliance of defaults to externally constructed target: Invocation.Builder builder = getDefaults().configure(target).
      Returns:
      a copy of client defaults
    • hasDefaults

      public boolean hasDefaults()
      Returns:
      if any default configured
    • hasDefaultHeaders

      public boolean hasDefaultHeaders()
      Could be used for verifications in tests to avoid defaults collide.
      Returns:
      true if default headers specified
    • hasDefaultQueryParams

      public boolean hasDefaultQueryParams()
      Could be used for verifications in tests to avoid defaults collide.
      Returns:
      true if default query params specified
    • hasDefaultMatrixParams

      public boolean hasDefaultMatrixParams()
      Could be used for verifications in tests to avoid defaults collide.
      Returns:
      true if default matrix params specified
    • hasDefaultPathParams

      public boolean hasDefaultPathParams()
      Could be used for verifications in tests to avoid defaults collide.
      Returns:
      true if default path params specified
    • hasDefaultProperties

      public boolean hasDefaultProperties()
      Could be used for verifications in tests to avoid defaults collide.
      Returns:
      true if default client properties specified
    • hasDefaultExtensions

      public boolean hasDefaultExtensions()
      Could be used for verifications in tests to avoid defaults collide.
      Returns:
      true if default client extensions specified
    • hasDefaultCookies

      public boolean hasDefaultCookies()
      Could be used for verifications in tests to avoid defaults collide.
      Returns:
      true if cookies specified
    • hasDefaultAccepts

      public boolean hasDefaultAccepts()
      Could be used for verifications in tests to avoid defaults collide.
      Returns:
      true if default Accept header specified
    • hasDefaultLanguages

      public boolean hasDefaultLanguages()
      Could be used for verifications in tests to avoid defaults collide.
      Returns:
      true if default Accept-Language header specified
    • hasDefaultEncodings

      public boolean hasDefaultEncodings()
      Could be used for verifications in tests to avoid defaults collide.
      Returns:
      true if default Accept-Encoding header specified
    • hasDefaultCacheControl

      public boolean hasDefaultCacheControl()
      Could be used for verifications in tests to avoid defaults collide.
      Returns:
      true if default Cache header specified
    • hasDefaultFormDateFormatter

      public boolean hasDefaultFormDateFormatter()
      Could be used for verifications in tests to avoid defaults collide.
      Returns:
      true if default date formatter (either one or both) specified for form builder
      See Also:
    • hasDefaultCustomConfigurators

      public boolean hasDefaultCustomConfigurators()
      Could be used for verifications in tests to avoid defaults collide.
      Returns:
      true if default path or request customizers registered
      See Also:
    • isDebugEnabled

      public boolean isDebugEnabled()
      Returns:
      true if debug output is enabled
      See Also:
    • reset

      public T reset()
      Reset configured defaults.
      Returns:
      rest client itself for chained calls
    • printDefaults

      public T printDefaults()
      Print configured defaults to console.
      Returns:
      builder instance for chained calls
    • self

      protected T self()
      Returns:
      client itself