Class AbstractGraphQlTesterBuilder<B extends AbstractGraphQlTesterBuilder<B>>

java.lang.Object
org.springframework.graphql.test.tester.AbstractGraphQlTesterBuilder<B>
All Implemented Interfaces:
GraphQlTester.Builder<B>
Direct Known Subclasses:
DefaultRSocketGraphQlTesterBuilder

public abstract class AbstractGraphQlTesterBuilder<B extends AbstractGraphQlTesterBuilder<B>> extends Object implements GraphQlTester.Builder<B>
Abstract, base class for transport specific GraphQlTester.Builder implementations.

Subclasses must implement GraphQlTester.Builder.build() and call buildGraphQlTester(GraphQlTransport) to obtain a default, transport agnostic GraphQlTester. A transport specific extension can then wrap this default tester by extending AbstractDelegatingGraphQlTester.

Since:
1.0.0
Author:
Rossen Stoyanchev
See Also:
  • Constructor Details

    • AbstractGraphQlTesterBuilder

      public AbstractGraphQlTesterBuilder()
  • Method Details

    • errorFilter

      public B errorFilter(Predicate<org.springframework.graphql.ResponseError> predicate)
      Description copied from interface: GraphQlTester.Builder
      Configure a global filter that applies to all requests.
      Specified by:
      errorFilter in interface GraphQlTester.Builder<B extends AbstractGraphQlTesterBuilder<B>>
      Parameters:
      predicate - the error filter to add
      Returns:
      the same builder instance
    • documentSource

      public B documentSource(org.springframework.graphql.support.DocumentSource documentSource)
      Description copied from interface: GraphQlTester.Builder
      Configure a DocumentSource for use with GraphQlTester.documentName(String) for resolving a document by name.

      By default, this is set to ResourceDocumentSource with classpath location "graphql-test/" and ResourceDocumentSource.FILE_EXTENSIONS as extensions.

      Specified by:
      documentSource in interface GraphQlTester.Builder<B extends AbstractGraphQlTesterBuilder<B>>
    • responseTimeout

      public B responseTimeout(Duration timeout)
      Description copied from interface: GraphQlTester.Builder
      Max amount of time to wait for a GraphQL response.

      By default this is set to 5 seconds.

      Specified by:
      responseTimeout in interface GraphQlTester.Builder<B extends AbstractGraphQlTesterBuilder<B>>
      Parameters:
      timeout - the response timeout value
    • configureJsonPathConfig

      protected void configureJsonPathConfig(Function<com.jayway.jsonpath.Configuration,com.jayway.jsonpath.Configuration> configurer)
      Allow transport-specific subclass builders to register a JSON Path MappingProvider that matches the JSON encoding/decoding they use.
    • buildGraphQlTester

      protected GraphQlTester buildGraphQlTester(org.springframework.graphql.client.GraphQlTransport transport)
      Build the default transport-agnostic client that subclasses can then wrap with AbstractDelegatingGraphQlTester.
    • getBuilderInitializer

      protected Consumer<AbstractGraphQlTesterBuilder<?>> getBuilderInitializer()
      Subclasses call this from GraphQlTester.Builder.build() to obtain a Consumer to initialize new builder instances with, based on "this" builder.
    • asTransport

      protected static org.springframework.graphql.client.GraphQlTransport asTransport(org.springframework.graphql.client.GraphQlClient client)
      For cases where the Tester needs the GraphQlTransport, we can't use transports directly since they are package private, but we can adapt the corresponding GraphQlClient and adapt it to GraphQlTransport.