@Test public void writeCustomJson() throws IOException { Map<ScalarType, CustomTypeAdapter> customTypeAdapters = new HashMap<>(); customTypeAdapters.put(new MockCustomScalarType(CustomTypeValue.GraphQLJson.class), new MockCustomTypeAdapter() { @NotNull @Override public CustomTypeValue encode(@NotNull Object value) { return new CustomTypeValue.GraphQLJson((Map<String, Object>) value); } }); inputFieldJsonWriter = new InputFieldJsonWriter(jsonWriter, new ScalarTypeAdapters(customTypeAdapters)); Map<String, Object> objectMap = new LinkedHashMap<>(); objectMap.put("booleanField", true); objectMap.put("stringField", "someValue"); objectMap.put("numberField", 100); objectMap.put("objectField", new UnmodifiableMapBuilder().put("someField", "someValue").build()); inputFieldJsonWriter.writeCustom("someField", new MockCustomScalarType(CustomTypeValue.GraphQLJson.class), objectMap); inputFieldJsonWriter.writeCustom("someNullField", new MockCustomScalarType(CustomTypeValue.GraphQLJson.class), null); assertThat(jsonBuffer.readUtf8()).isEqualTo("{\"someField\":{\"booleanField\":true,\"stringField\":\"someValue\",\"numberField\":100,\"objectField\":{\"someField\":\"someValue\"}},\"someNullField\":null"); }
@Test public void writeCustomJsonString() throws IOException { Map<ScalarType, CustomTypeAdapter> customTypeAdapters = new HashMap<>(); customTypeAdapters.put(new MockCustomScalarType(CustomTypeValue.GraphQLJsonString.class), new MockCustomTypeAdapter() { @NotNull @Override public CustomTypeValue encode(@NotNull Object value) { return new CustomTypeValue.GraphQLJsonString((String) value); } }); inputFieldJsonWriter = new InputFieldJsonWriter(jsonWriter, new ScalarTypeAdapters(customTypeAdapters)); inputFieldJsonWriter.writeCustom("someField", new MockCustomScalarType(CustomTypeValue.GraphQLJsonString.class), "{\"someField\": \"someValue\"}"); inputFieldJsonWriter.writeCustom("someNullField", new MockCustomScalarType(CustomTypeValue.GraphQLJsonString.class), null); assertThat(jsonBuffer.readUtf8()).isEqualTo("{\"someField\":\"{\\\"someField\\\": \\\"someValue\\\"}\",\"someNullField\":null"); }
@Test public void writeCustomNumber() throws IOException { Map<ScalarType, CustomTypeAdapter> customTypeAdapters = new HashMap<>(); customTypeAdapters.put(new MockCustomScalarType(CustomTypeValue.GraphQLNumber.class), new MockCustomTypeAdapter() { @NotNull @Override public CustomTypeValue encode(@NotNull Object value) { return new CustomTypeValue.GraphQLNumber((Number) value); } }); inputFieldJsonWriter = new InputFieldJsonWriter(jsonWriter, new ScalarTypeAdapters(customTypeAdapters)); inputFieldJsonWriter.writeCustom("someField", new MockCustomScalarType(CustomTypeValue.GraphQLNumber.class), BigDecimal.valueOf(100.1)); inputFieldJsonWriter.writeCustom("someNullField", new MockCustomScalarType(CustomTypeValue.GraphQLNumber.class), null); assertThat(jsonBuffer.readUtf8()).isEqualTo("{\"someField\":100.1,\"someNullField\":null"); }
@Test public void writeCustomBoolean() throws IOException { Map<ScalarType, CustomTypeAdapter> customTypeAdapters = new HashMap<>(); customTypeAdapters.put(new MockCustomScalarType(CustomTypeValue.GraphQLBoolean.class), new MockCustomTypeAdapter() { @NotNull @Override public CustomTypeValue encode(@NotNull Object value) { return new CustomTypeValue.GraphQLBoolean((Boolean) value); } }); inputFieldJsonWriter = new InputFieldJsonWriter(jsonWriter, new ScalarTypeAdapters(customTypeAdapters)); inputFieldJsonWriter.writeCustom("someField", new MockCustomScalarType(CustomTypeValue.GraphQLBoolean.class), true); inputFieldJsonWriter.writeCustom("someNullField", new MockCustomScalarType(CustomTypeValue.GraphQLBoolean.class), null); assertThat(jsonBuffer.readUtf8()).isEqualTo("{\"someField\":true,\"someNullField\":null"); }
@Test public void writeCustomString() throws IOException { Map<ScalarType, CustomTypeAdapter> customTypeAdapters = new HashMap<>(); customTypeAdapters.put(new MockCustomScalarType(CustomTypeValue.GraphQLString.class), new MockCustomTypeAdapter() { @NotNull @Override public CustomTypeValue encode(@NotNull Object value) { return new CustomTypeValue.GraphQLString((String) value); } }); inputFieldJsonWriter = new InputFieldJsonWriter(jsonWriter, new ScalarTypeAdapters(customTypeAdapters)); inputFieldJsonWriter.writeCustom("someField", new MockCustomScalarType(CustomTypeValue.GraphQLString.class), "someValue"); inputFieldJsonWriter.writeCustom("someNullField", new MockCustomScalarType(CustomTypeValue.GraphQLString.class), null); assertThat(jsonBuffer.readUtf8()).isEqualTo("{\"someField\":\"someValue\",\"someNullField\":null"); }