From c340d85494e05618f1bb40dfa4612f82017e1e47 Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Tue, 17 Sep 2024 11:46:00 +0100 Subject: [PATCH] Handling for empty representations list Closes gh-1057 --- .../graphql/data/federation/EntitiesDataFetcher.java | 3 +++ .../data/federation/EntityMappingInvocationTests.java | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/spring-graphql/src/main/java/org/springframework/graphql/data/federation/EntitiesDataFetcher.java b/spring-graphql/src/main/java/org/springframework/graphql/data/federation/EntitiesDataFetcher.java index b6fb28f3..51116a74 100644 --- a/spring-graphql/src/main/java/org/springframework/graphql/data/federation/EntitiesDataFetcher.java +++ b/spring-graphql/src/main/java/org/springframework/graphql/data/federation/EntitiesDataFetcher.java @@ -70,6 +70,9 @@ final class EntitiesDataFetcher implements DataFetcher>newResult().data(Collections.emptyList()).build()); + } Set batchedTypes = new HashSet<>(); List> monoList = new ArrayList<>(); diff --git a/spring-graphql/src/test/java/org/springframework/graphql/data/federation/EntityMappingInvocationTests.java b/spring-graphql/src/test/java/org/springframework/graphql/data/federation/EntityMappingInvocationTests.java index a03ad867..448ef2e0 100644 --- a/spring-graphql/src/test/java/org/springframework/graphql/data/federation/EntityMappingInvocationTests.java +++ b/spring-graphql/src/test/java/org/springframework/graphql/data/federation/EntityMappingInvocationTests.java @@ -115,6 +115,14 @@ public class EntityMappingInvocationTests { assertAuthor(6, "George", "Orwell", helper); } + @Test // gh-1057 + void fetchEntitiesWithEmptyList() { + Map vars = Map.of("representations", Collections.emptyList()); + ResponseHelper helper = executeWith(BookController.class, vars); + + assertThat(helper.toEntity("_entities.length()", Integer.class)).isEqualTo(0); + } + @ValueSource(classes = {BookListController.class, BookFluxController.class}) @ParameterizedTest void batching(Class controllerClass) {