Skip to content

Commit 29603ab

Browse files
committed
WebMVC shouldPassListOfFiles
1 parent 33b3823 commit 29603ab

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

spring-graphql/src/test/java/org/springframework/graphql/server/webmvc/GraphQlHttpHandlerTests.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.io.InputStream;
2020
import java.nio.charset.StandardCharsets;
2121
import java.util.*;
22+
import java.util.stream.Collectors;
2223

2324
import javax.servlet.ServletException;
2425

@@ -127,7 +128,38 @@ void shouldPassFile() throws Exception {
127128

128129
assertThat(servletResponse.getContentAsString())
129130
.isEqualTo("{\"data\":{\"fileUpload\":\"foo.txt\"}}");
131+
}
132+
133+
@Test
134+
void shouldPassListOfFiles() throws Exception {
135+
GraphQlHttpHandler handler = GraphQlSetup.schemaContent(
136+
"type Query { ping: String } \n" +
137+
"scalar Upload\n" +
138+
"type Mutation {\n" +
139+
" multipleFilesUpload(multipleFileInputs: [Upload!]!): [String!]!\n" +
140+
"}")
141+
.mutationFetcher("multipleFilesUpload", (env) -> ((Collection<MultipartFile>) env.getVariables().get("multipleFileInputs")).stream().map(multipartFile -> multipartFile.getOriginalFilename()).collect(Collectors.toList()))
142+
.runtimeWiring(builder -> builder.scalar(GraphQLScalarType.newScalar()
143+
.name("Upload")
144+
.coercing(new UploadCoercing())
145+
.build()))
146+
.toHttpHandler();
147+
148+
Collection<Resource> resources = new ArrayList<>();
149+
resources.add(new ClassPathResource("/foo.txt"));
150+
resources.add(new ClassPathResource("/bar.txt"));
130151

152+
MockHttpServletRequest servletRequest = createMultipartServletRequest(
153+
"mutation MultipleFilesUpload($multipleFileInputs: [Upload!]!) " +
154+
"{multipleFilesUpload(multipleFileInputs: $multipleFileInputs) }",
155+
MediaType.APPLICATION_GRAPHQL_VALUE,
156+
Collections.singletonMap("multipleFileInputs", resources)
157+
);
158+
159+
MockHttpServletResponse servletResponse = handleMultipartRequest(servletRequest, handler);
160+
161+
assertThat(servletResponse.getContentAsString())
162+
.isEqualTo("{\"data\":{\"multipleFilesUpload\":[\"foo.txt\",\"bar.txt\"]}}");
131163
}
132164

133165
@Test

0 commit comments

Comments
 (0)