public void Reads_GraphQLRequest_List_No_Items(IGraphQLTextSerializer serializer) { var test = $"[]"; var actual = serializer.Deserialize <List <GraphQLRequest> >(test); actual.Count.ShouldBe(0); }
public void serialization_should_have_correct_case(IGraphQLTextSerializer writer) { var trace = new ApolloTrace(new DateTime(2019, 12, 05, 15, 38, 00, DateTimeKind.Utc), 102.5); var expected = @"{ ""version"": 1, ""startTime"": ""2019-12-05T15:38:00Z"", ""endTime"": ""2019-12-05T15:38:00.103Z"", ""duration"": 102500000, ""parsing"": { ""startOffset"": 0, ""duration"": 0 }, ""validation"": { ""startOffset"": 0, ""duration"": 0 }, ""execution"": { ""resolvers"": [] } }"; var result = writer.Serialize(trace); result.ShouldBeCrossPlat(expected); }
public WebSocketTransport(WebSocket socket, IGraphQLTextSerializer serializer) { _socket = socket; Reader = new WebSocketReaderPipeline(_socket, serializer); Writer = new WebSocketWriterPipeline(_socket, serializer); }
public void Reads_Null_GraphQLRequest_In_List(IGraphQLTextSerializer serializer) { var actual = serializer.Deserialize <GraphQLRequest[]>("[null]"); actual.Length.ShouldBe(1); actual.First().ShouldBeNull(); }
public GraphQLHttpMiddlewareWithLogs( ILogger <GraphQLHttpMiddleware <TSchema> > logger, IGraphQLTextSerializer requestDeserializer) : base(requestDeserializer) { _logger = logger; }
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 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 Null(IGraphQLTextSerializer serializer) { var expected = "null"; var actual = serializer.Serialize <ExecutionError>(null); actual.ShouldBeCrossPlatJson(expected); }
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 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 Writes_OperationMessage_Nulls(IGraphQLTextSerializer serializer) { var message = new OperationMessage(); var actual = serializer.Serialize(message); var expected = @"{}"; actual.ShouldBeCrossPlatJson(expected); }
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_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 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 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_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_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 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 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); }
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 Simple(IGraphQLTextSerializer serializer) { var error = new ExecutionError("some error 1"); var expected = @"{""message"": ""some error 1""}"; var actual = serializer.Serialize(error); actual.ShouldBeCrossPlatJson(expected); }
public void Array(IGraphQLTextSerializer serializer) { var errors = new ExecutionError[] { new ExecutionError("some error 1"), new ExecutionError("some error 2") }; var expected = @"[{""message"": ""some error 1""}, {""message"": ""some error 2""}]"; var actual = serializer.Serialize(errors); actual.ShouldBeCrossPlatJson(expected); }
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 WebSocketReaderPipeline(WebSocket socket, IGraphQLTextSerializer serializer) { _socket = socket; _serializer = serializer; _startBlock = CreateMessageReader(); _endBlock = CreateReaderJsonTransformer(); _startBlock.LinkTo(_endBlock, new DataflowLinkOptions { PropagateCompletion = true }); }
public AutomaticPersistedQueriesFixture() { Provider = new ServiceCollection() .AddGraphQL(builder => builder .AddAutomaticPersistedQueries(options => options.SlidingExpiration = TimeSpan.FromMinutes(1)) .AddSchema <AutomaticPersistedQueriesTestSchema>() .AddSystemTextJson() ).BuildServiceProvider(); _executer = Provider.GetRequiredService <IDocumentExecuter <AutomaticPersistedQueriesTestSchema> >(); _serializer = Provider.GetRequiredService <IGraphQLTextSerializer>(); }
public async Task FromJsonStream(IGraphQLTextSerializer serializer) { var test = $"{{\"query\":\"hello\",\"variables\":{ExampleJson}}}"; var testData = new MemoryStream(Encoding.UTF8.GetBytes(test)); var actual = await serializer.ReadAsync <TestClass1>(testData).ConfigureAwait(false); actual.Query.ShouldBe("hello"); Verify(actual.Variables); // verify that the stream has not been disposed testData.ReadByte().ShouldBe(-1); testData.Dispose(); Should.Throw <ObjectDisposedException>(() => testData.ReadByte()); }
public void Writes_GraphQLRequest_Array_Correctly(IGraphQLTextSerializer serializer) { var request = new GraphQLRequest { Query = "hello", }; var expected = @"[{ ""query"": ""hello"" }]"; var actual = serializer.Serialize(new GraphQLRequest[] { request }); actual.ShouldBeCrossPlatJson(expected); }