|
19 | 19 | import java.util.Collections;
|
20 | 20 | import java.util.List;
|
21 | 21 | import java.util.Map;
|
| 22 | +import java.util.Optional; |
22 | 23 | import java.util.concurrent.atomic.AtomicReference;
|
23 | 24 |
|
24 | 25 | import graphql.GraphqlErrorBuilder;
|
@@ -240,6 +241,39 @@ void operationNameAndVariables() {
|
240 | 241 | assertThat(request.getVariables()).containsEntry("keyOnly", null);
|
241 | 242 | }
|
242 | 243 |
|
| 244 | + @Test |
| 245 | + void operationNameAndVariablesAsMap() { |
| 246 | + |
| 247 | + String document = "query HeroNameAndFriends($episode: Episode) {" + |
| 248 | + " hero(episode: $episode) {" + |
| 249 | + " name" |
| 250 | + + " }" + |
| 251 | + "}"; |
| 252 | + |
| 253 | + getGraphQlService().setDataAsJson(document, "{\"hero\": {\"name\":\"R2-D2\"}}"); |
| 254 | + |
| 255 | + Map<String, Object> variableMap = new LinkedHashMap<>(); |
| 256 | + |
| 257 | + variableMap.put("episode", Optional.of("JEDI")); |
| 258 | + variableMap.put("foo", Optional.of("bar")); |
| 259 | + variableMap.put("keyOnly", Optional.ofNullable(null)); |
| 260 | + |
| 261 | + GraphQlTester.Response response = graphQlTester().document(document) |
| 262 | + .operationName("HeroNameAndFriends") |
| 263 | + .variable(variableMap) |
| 264 | + .execute(); |
| 265 | + |
| 266 | + response.path("hero").entity(MovieCharacter.class).isEqualTo(MovieCharacter.create("R2-D2")); |
| 267 | + |
| 268 | + ExecutionGraphQlRequest request = getGraphQlService().getGraphQlRequest(); |
| 269 | + assertThat(request.getDocument()).contains(document); |
| 270 | + assertThat(request.getOperationName()).isEqualTo("HeroNameAndFriends"); |
| 271 | + assertThat(request.getVariables()).hasSize(3); |
| 272 | + assertThat(request.getVariables()).containsEntry("episode", Optional.of("JEDI")); |
| 273 | + assertThat(request.getVariables()).containsEntry("foo", Optional.of("bar")); |
| 274 | + assertThat(request.getVariables()).containsEntry("keyOnly", Optional.ofNullable(null)); |
| 275 | + } |
| 276 | + |
243 | 277 | @Test
|
244 | 278 | void protocolExtensions() {
|
245 | 279 | String document = "{me {name, friends}}";
|
|
0 commit comments