public void Reads_Null_GraphQLRequest_In_List(IGraphQLTextSerializer serializer) { var actual = serializer.Deserialize <GraphQLRequest[]>("[null]"); actual.Length.ShouldBe(1); actual.First().ShouldBeNull(); }
public void Reads_GraphQLRequest_List_No_Items(IGraphQLTextSerializer serializer) { var test = $"[]"; var actual = serializer.Deserialize <List <GraphQLRequest> >(test); actual.Count.ShouldBe(0); }
public async Task should_map(IGraphQLTextSerializer serializer) { var documentExecuter = new DocumentExecuter(); var executionResult = await documentExecuter.ExecuteAsync(_ => { _.Schema = new Issue2275Schema(); _.Query = @"query($data:Input!) { request(data: $data) }"; _.Variables = serializer.Deserialize <Inputs>(@"{ ""data"": { ""clientId"": 2, ""filters"": [{ ""key"": ""o"", ""value"": 25 }] } }"); }).ConfigureAwait(false); var json = serializer.Serialize(executionResult); executionResult.Errors.ShouldBeNull(); json.ShouldBe(@"{ ""data"": { ""request"": ""2: [o=25]"" } }"); }
public void Reads_GraphQLRequest_IsCaseSensitive(IGraphQLTextSerializer serializer) { var test = $"{{\"query\":\"hello\",\"Variables\":{ExampleJson}}}"; var actual = serializer.Deserialize <GraphQLRequest>(test); actual.Query.ShouldBe("hello"); actual.Variables.ShouldBeNull(); }
public void Reads_GraphQLRequest(IGraphQLTextSerializer serializer) { var test = $"{{\"query\":\"hello\",\"variables\":{ExampleJson}}}"; var actual = serializer.Deserialize <GraphQLRequest>(test); actual.Query.ShouldBe("hello"); Verify(actual.Variables); }
public void InputsDecodesDatesAsStrings(IGraphQLTextSerializer serializer) { var date = new DateTimeOffset(2022, 2, 6, 12, 26, 53, TimeSpan.FromHours(-5)); var dateStr = date.ToString("O"); var actual = serializer.Deserialize <Inputs>($"{{\"date\":\"{dateStr}\"}}"); actual.ShouldContainKeyAndValue("date", dateStr); }
public void FromJson(IGraphQLTextSerializer serializer) { var test = $"{{\"query\":\"hello\",\"variables\":{ExampleJson}}}"; var actual = serializer.Deserialize <TestClass1>(test); actual.Query.ShouldBe("hello"); Verify(actual.Variables); }
public void FromJson_Missing(IGraphQLTextSerializer serializer) { var test = $"{{\"query\":\"hello\"}}"; var actual = serializer.Deserialize <TestClass1>(test); actual.Query.ShouldBe("hello"); actual.Variables.ShouldBeNull(); }
public void BatchRequestAsIListIsArrayForSingle(IGraphQLTextSerializer serializer) { // verifies that when deserializing to IList<GraphQLRequest>, and when it is not a batch request, the result is a GraphQLRequest[1] // note: the server counts on this behavior to determine whether or not a request is a batch request var actual = serializer.Deserialize <IList <GraphQLRequest> >("{}"); actual.ShouldBeOfType <GraphQLRequest[]>(); actual.Count.ShouldBe(1); }
public void Reads_OperationMessage_Empty(IGraphQLTextSerializer serializer) { var test = $"{{}}"; var actual = serializer.Deserialize <OperationMessage>(test); actual.Id.ShouldBeNull(); actual.Type.ShouldBeNull(); actual.Payload.ShouldBeNull(); }
public void Reads_OperationMessage_Nulls(IGraphQLTextSerializer serializer) { var test = $"{{\"id\":null,\"type\":null,\"payload\":null}}"; var actual = serializer.Deserialize <OperationMessage>(test); actual.Id.ShouldBeNull(); actual.Type.ShouldBeNull(); actual.Payload.ShouldBeNull(); }
public void Reads_GraphQLRequest_List_NotCaseSensitive(IGraphQLTextSerializer serializer) { var test = @"{""VARIABLES"":{""date"":""2015-12-22T10:10:10+03:00""},""query"":""test""}"; var actual = serializer.Deserialize <List <GraphQLRequest> >(test); actual.Count.ShouldBe(1); actual[0].Query.ShouldBe("test"); actual[0].Variables.ShouldBeNull(); }
public void Reads_GraphQLRequest_Other_Properties(IGraphQLTextSerializer serializer) { var test = $"{{\"query\":\"hello\",\"operationName\":\"hello2\",\"extensions\":{ExampleJson}}}"; var actual = serializer.Deserialize <GraphQLRequest>(test); actual.Query.ShouldBe("hello"); actual.OperationName.ShouldBe("hello2"); Verify(actual.Extensions); }
public void Reads_GraphQLRequest_List_Reads_Single_Item(IGraphQLTextSerializer serializer) { var test = $"{{\"query\":\"hello\",\"variables\":{ExampleJson}}}"; var actual = serializer.Deserialize <List <GraphQLRequest> >(test); var request = actual.ShouldHaveSingleItem(); request.Query.ShouldBe("hello"); Verify(request.Variables); }
public void ElementToInputs(IGraphQLTextSerializer serializer) { var test = $"{{\"query\":\"hello\",\"variables\":{ExampleJson}}}"; var actual = serializer.Deserialize <TestClass2>(test); actual.Query.ShouldBe("hello"); var variables = serializer.ReadNode <Inputs>(actual.Variables); Verify(variables); }
public void Reads_GraphQLRequest_Empty(IGraphQLTextSerializer serializer) { var test = $"{{}}"; var actual = serializer.Deserialize <GraphQLRequest>(test); actual.Query.ShouldBeNull(); actual.OperationName.ShouldBeNull(); actual.Variables.ShouldBeNull(); actual.Extensions.ShouldBeNull(); }
public void Reads_GraphQLRequest_Nulls(IGraphQLTextSerializer serializer) { var test = $"{{\"query\":null,\"operationName\":null,\"variables\":null,\"extensions\":null}}"; var actual = serializer.Deserialize <GraphQLRequest>(test); actual.Query.ShouldBeNull(); actual.OperationName.ShouldBeNull(); actual.Variables.ShouldBeNull(); actual.Extensions.ShouldBeNull(); }
public void FromJson_IsCaseInsensitive_Inputs(IGraphQLTextSerializer serializer) { var test = $"{{\"Query\":\"hello\",\"Variables\":{ExampleJson}}}"; var actual = serializer.Deserialize <TestClass1>(test); actual.Query.ShouldBe("hello"); var variables = actual.Variables; Verify(variables); }
protected IPropagatorBlock <string, OperationMessage> CreateReaderJsonTransformer() { var transformer = new TransformBlock <string, OperationMessage>( input => _serializer.Deserialize <OperationMessage>(input), new ExecutionDataflowBlockOptions { EnsureOrdered = true }); return(transformer); }
public static void ShouldBeSimilarTo(this object?actual, object?expected, string?customMessage = null) { if (expected is string str) { expected = _serializer.Deserialize <Inputs>(str); } var expectedJson = _serializer.Serialize(expected); var actualJson = _serializer.Serialize(actual); actualJson.ShouldBe(expectedJson, customMessage); }
public void Reads_GraphQLRequest_List_Multiple_Items(IGraphQLTextSerializer serializer) { var test = $"[{{\"query\":\"hello\",\"variables\":{ExampleJson}}},{{\"query\":\"hello2\"}}]"; var actual = serializer.Deserialize <List <GraphQLRequest> >(test); actual.Count.ShouldBe(2); actual[0].Query.ShouldBe("hello"); Verify(actual[0].Variables); actual[1].Query.ShouldBe("hello2"); actual[1].Variables.ShouldBeNull(); }
public void Reads_OperationMessage_Populated(IGraphQLTextSerializer serializer) { var test = $"{{\"id\":\"hello\",\"type\":\"hello2\",\"payload\":{{\"query\":\"hello3\",\"variables\":{ExampleJson}}}}}"; var actual = serializer.Deserialize <OperationMessage>(test); actual.Id.ShouldBe("hello"); actual.Type.ShouldBe("hello2"); actual.Payload.ShouldNotBeNull(); var request = serializer.ReadNode <GraphQLRequest>(actual.Payload); request.Query.ShouldBe("hello3"); Verify(request.Variables); }
private void Reads_GraphQLRequest_Test <T>(IGraphQLTextSerializer serializer) where T : IEnumerable <GraphQLRequest> { var test = $"[{{\"query\":\"hello\",\"variables\":{ExampleJson}}}, {{\"query\":\"dummy\"}}]"; var actual = serializer.Deserialize <T>(test); actual.Count().ShouldBe(2); var request = actual.First(); request.Query.ShouldBe("hello"); Verify(request.Variables); var request2 = actual.Last(); request2.Query.ShouldBe("dummy"); }
public void double_to_decimal_does_not_lose_precision(IGraphQLTextSerializer serializer) { string request = @"{ ""operationName"": ""TestMutation"", ""variables"": { ""input"": { ""discount"": 12345678901234.56 } }, ""query"": ""mutation TestMutation($input: MutationType!)"" }"; var inputs = serializer.Deserialize <GraphQLRequest>(request); inputs.Variables.ShouldNotBeNull(); inputs.Variables.Count.ShouldBe(1); var inner = inputs.Variables["input"].ShouldBeOfType <Dictionary <string, object> >(); inner.Count.ShouldBe(1); var value = inner["discount"]; value.ShouldBeOfType <decimal>().ShouldBe(12345678901234.56m); }
public Inputs SystemTextJson() => _systemTextJsonSerializer.Deserialize <Inputs>(Json);
public static Inputs?ToInputs(this string?json) => _serializer.Deserialize <Inputs>(json) ?? Inputs.Empty;
public Inputs NewtonsoftJson() => _newtonsoftJsonSerializer.Deserialize <Inputs>(Json);
public void StringToInputs(IGraphQLTextSerializer serializer) { var actual = serializer.Deserialize <Inputs>(ExampleJson); Verify(actual); }