public async Task ClientSubscription_FromQueryData_GeneralPropertyCheck() { var testServer = new TestServerBuilder() .AddGraphController <ClientSubscriptionTestController>() .AddSubscriptionServer() .Build(); var schema = testServer.Schema; var subServer = testServer.RetrieveSubscriptionServer(); var queryPlan = await testServer.CreateQueryPlan("subscription { watchObjects { property1 property2 }} "); Assert.AreEqual(1, queryPlan.Operations.Count); Assert.AreEqual(0, queryPlan.Messages.Count); var field = queryPlan.Operations.Values.First().FieldContexts[0].Field; var name = field.GetType().FullName; (var socketClient, var testClient) = await testServer.CreateSubscriptionClient(); var queryData = new GraphQueryData(); var sub = new ClientSubscription <GraphSchema>( testClient, queryData, queryPlan, queryPlan.Operations.First().Value, "abc123"); Assert.IsTrue(sub.IsValid); Assert.AreEqual("[subscription]/WatchObjects", sub.Route.Path); Assert.AreEqual("abc123", sub.Id); Assert.AreEqual(field, sub.Field); Assert.AreEqual(testClient, sub.Client); Assert.AreEqual(queryData, sub.QueryData); }
private IGraphQueryPlan CreatePlan(string queryText) { var server = new TestServerBuilder() .AddGraphType <SimpleExecutionController>() .Build(); var task = server.CreateQueryPlan(queryText); task.Wait(); return(task.Result); }
public async Task QueryPlanCacheAddLogEntry() { var server = new TestServerBuilder() .AddGraphType <LogTestController>() .Build(); var queryPlan = await server.CreateQueryPlan("query Operation1{ field1 } query Operation2 { fieldException }"); var entry = new QueryPlanCacheAddLogEntry("abc123", queryPlan); Assert.AreEqual(LogEventIds.QueryCacheAdd.Id, entry.EventId); Assert.AreEqual("abc123", entry.QueryPlanHashCode); Assert.AreEqual(typeof(GraphSchema).FriendlyName(true), entry.SchemaTypeName); Assert.AreEqual(queryPlan.Id, entry.QueryPlanId); Assert.IsNotNull(entry.ToString()); }
public async Task QueryPlanGeneratedLogEntry() { var server = new TestServerBuilder() .AddGraphType <LogTestController>() .Build(); var queryPlan = await server.CreateQueryPlan("query Operation1{ field1 } query Operation2 { fieldException }"); var entry = new QueryPlanGeneratedLogEntry(queryPlan); Assert.AreEqual(LogEventIds.QueryPlanGenerationCompleted.Id, entry.EventId); Assert.AreEqual(typeof(GraphSchema).FriendlyName(true), entry.SchemaTypeName); Assert.AreEqual(queryPlan.Id, entry.QueryPlanId); Assert.AreEqual(queryPlan.IsValid, entry.QueryPlanIsValid); Assert.AreEqual(queryPlan.Operations.Count, entry.QueryOperationCount); Assert.AreEqual(queryPlan.EstimatedComplexity, entry.QueryPlanEstimatedComplexity); Assert.AreEqual(queryPlan.MaxDepth, entry.QueryPlanMaxDepth); Assert.IsNotNull(entry.ToString()); }
public async Task <IResolvedVariableCollection> CreateResolvedVariableCollection(string queryText, string jsonDoc) { var server = new TestServerBuilder() .AddGraphType <VariableTestController>() .Build(); var plan = await server.CreateQueryPlan(queryText); if (plan.Messages.Count > 0) { Assert.Fail(plan.Messages[0].Message); } var operation = plan.Operations.First().Value; var resolver = new ResolvedVariableGenerator(server.Schema, operation); var variableSet = InputVariableCollection.FromJsonDocument(jsonDoc); return(resolver.Resolve(variableSet)); }