Add "Connection" support method to GraphQlSetup

This commit is contained in:
rstoyanchev
2023-05-17 06:38:02 +01:00
parent 8fe4b295d4
commit 7aaf4b9bcd
8 changed files with 23 additions and 19 deletions

View File

@@ -32,12 +32,10 @@ import org.springframework.graphql.GraphQlSetup;
import org.springframework.graphql.ResponseHelper;
import org.springframework.graphql.TestExecutionRequest;
import org.springframework.graphql.data.method.annotation.QueryMapping;
import org.springframework.graphql.data.pagination.ConnectionFieldTypeVisitor;
import org.springframework.graphql.data.pagination.CursorStrategy;
import org.springframework.graphql.data.query.ScrollPositionCursorStrategy;
import org.springframework.graphql.data.query.ScrollSubrange;
import org.springframework.graphql.data.query.WindowConnectionAdapter;
import org.springframework.graphql.execution.ConnectionTypeDefinitionConfigurer;
import org.springframework.stereotype.Controller;
/**
@@ -83,9 +81,9 @@ public class SchemaMappingPaginationTests {
configurer.setApplicationContext(context);
configurer.afterPropertiesSet();
GraphQlSetup setup = GraphQlSetup.schemaResource(BookSource.paginationSchema).runtimeWiring(configurer);
setup.typeDefinitionConfigurer(new ConnectionTypeDefinitionConfigurer());
setup.typeVisitor(ConnectionFieldTypeVisitor.create(List.of(new WindowConnectionAdapter(cursorStrategy))));
GraphQlSetup setup = GraphQlSetup.schemaResource(BookSource.paginationSchema)
.runtimeWiring(configurer)
.connectionSupport(new WindowConnectionAdapter(cursorStrategy));
return setup.toGraphQlService();
}

View File

@@ -47,8 +47,7 @@ public class ConnectionFieldTypeVisitorTests {
Mono<ExecutionGraphQlResponse> response = GraphQlSetup.schemaResource(BookSource.paginationSchema)
.dataFetcher("Query", "books", env -> BookSource.books())
.typeDefinitionConfigurer(new ConnectionTypeDefinitionConfigurer())
.typeVisitor(ConnectionFieldTypeVisitor.create(List.of(adapter)))
.connectionSupport(adapter)
.toGraphQlService()
.execute(TestExecutionRequest.forDocument(BookSource.booksConnectionQuery(null)));
@@ -77,8 +76,7 @@ public class ConnectionFieldTypeVisitorTests {
Mono<ExecutionGraphQlResponse> response = GraphQlSetup.schemaResource(BookSource.paginationSchema)
.dataFetcher("Query", "books", new PropertyDataFetcher<>("books"))
.typeDefinitionConfigurer(new ConnectionTypeDefinitionConfigurer())
.typeVisitor(ConnectionFieldTypeVisitor.create(List.of(new ListConnectionAdapter())))
.connectionSupport(new ListConnectionAdapter())
.toGraphQlService()
.execute(TestExecutionRequest.forDocument(BookSource.booksConnectionQuery(null)));
@@ -90,8 +88,7 @@ public class ConnectionFieldTypeVisitorTests {
Mono<ExecutionGraphQlResponse> response = GraphQlSetup.schemaResource(BookSource.paginationSchema)
.dataFetcher("Query", "books", environment -> null)
.typeDefinitionConfigurer(new ConnectionTypeDefinitionConfigurer())
.typeVisitor(ConnectionFieldTypeVisitor.create(List.of(new ListConnectionAdapter())))
.connectionSupport(new ListConnectionAdapter())
.toGraphQlService()
.execute(TestExecutionRequest.forDocument(BookSource.booksConnectionQuery(null)));

View File

@@ -363,8 +363,7 @@ class QuerydslDataFetcherTests {
private static GraphQlSetup paginationSetup(ScrollPositionCursorStrategy cursorStrategy) {
return GraphQlSetup.schemaResource(BookSource.paginationSchema)
.typeDefinitionConfigurer(new ConnectionTypeDefinitionConfigurer())
.typeVisitor(ConnectionFieldTypeVisitor.create(List.of(new WindowConnectionAdapter(cursorStrategy))));
.connectionSupport(new WindowConnectionAdapter(cursorStrategy));
}
private static RuntimeWiringConfigurer createRuntimeWiringConfigurer(

View File

@@ -250,8 +250,7 @@ class QueryByExampleDataFetcherJpaTests {
private static GraphQlSetup paginationSetup(ScrollPositionCursorStrategy cursorStrategy) {
return GraphQlSetup.schemaResource(BookSource.paginationSchema)
.typeDefinitionConfigurer(new ConnectionTypeDefinitionConfigurer())
.typeVisitor(ConnectionFieldTypeVisitor.create(List.of(new WindowConnectionAdapter(cursorStrategy))));
.connectionSupport(new WindowConnectionAdapter(cursorStrategy));
}
private static RuntimeWiringConfigurer createRuntimeWiringConfigurer(QueryByExampleExecutor<?> executor) {

View File

@@ -228,8 +228,7 @@ class QueryByExampleDataFetcherMongoDbTests {
private static GraphQlSetup paginationSetup(ScrollPositionCursorStrategy cursorStrategy) {
return GraphQlSetup.schemaResource(BookSource.paginationSchema)
.typeDefinitionConfigurer(new ConnectionTypeDefinitionConfigurer())
.typeVisitor(ConnectionFieldTypeVisitor.create(List.of(new WindowConnectionAdapter(cursorStrategy))));
.connectionSupport(new WindowConnectionAdapter(cursorStrategy));
}
private static RuntimeWiringConfigurer createRuntimeWiringConfigurer(QueryByExampleExecutor<?> executor) {

View File

@@ -201,8 +201,7 @@ class QueryByExampleDataFetcherReactiveMongoDbTests {
private static GraphQlSetup paginationSetup(ScrollPositionCursorStrategy cursorStrategy) {
return GraphQlSetup.schemaResource(BookSource.paginationSchema)
.typeDefinitionConfigurer(new ConnectionTypeDefinitionConfigurer())
.typeVisitor(ConnectionFieldTypeVisitor.create(List.of(new WindowConnectionAdapter(cursorStrategy))));
.connectionSupport(new WindowConnectionAdapter(cursorStrategy));
}
private static RuntimeWiringConfigurer createRuntimeWiringConfigurer(ReactiveQueryByExampleExecutor<?> executor) {

View File

@@ -30,6 +30,9 @@ import org.springframework.context.ApplicationContext;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.Resource;
import org.springframework.graphql.data.method.annotation.support.AnnotatedControllerConfigurer;
import org.springframework.graphql.data.pagination.ConnectionAdapter;
import org.springframework.graphql.data.pagination.ConnectionFieldTypeVisitor;
import org.springframework.graphql.execution.ConnectionTypeDefinitionConfigurer;
import org.springframework.graphql.execution.DataFetcherExceptionResolver;
import org.springframework.graphql.execution.DataLoaderRegistrar;
import org.springframework.graphql.execution.DefaultExecutionGraphQlService;
@@ -98,6 +101,12 @@ public class GraphQlSetup implements GraphQlServiceSetup {
return runtimeWiring(configurer);
}
public GraphQlSetup connectionSupport(ConnectionAdapter connectionAdapter) {
typeDefinitionConfigurer(new ConnectionTypeDefinitionConfigurer());
typeVisitor(ConnectionFieldTypeVisitor.create(List.of(connectionAdapter)));
return this;
}
public GraphQlSetup exceptionResolver(DataFetcherExceptionResolver... resolvers) {
this.graphQlSourceBuilder.exceptionResolvers(Arrays.asList(resolvers));
return this;

View File

@@ -0,0 +1,4 @@
package org.springframework.graphql;
public interface TestExecutionGraphQlService {
}