public async Task should_handle_start() { /* Given */ var query = new GraphQLQuery { OperationName = "test", Query = "query", Variables = JObject.FromObject(new { test = "variable" }) }; var messageContext = CreateMessage( MessageTypes.GQL_START, query); _subscriptionExecuter.SubscribeAsync(Arg.Any <ExecutionOptions>()) .Returns(CreateStreamResult); /* When */ await _sut.HandleMessageAsync(messageContext).ConfigureAwait(false); /* Then */ await _subscriptionExecuter.Received() .SubscribeAsync(Arg.Is <ExecutionOptions>( context => context.Schema == _schema && context.Query == query.Query && context.Inputs.ContainsKey("test"))) .ConfigureAwait(false); var connectionSubscriptions = _sut.Subscriptions[messageContext.ConnectionId]; Assert.True(connectionSubscriptions.ContainsKey(messageContext.Op.Id)); }
private Task <SubscriptionExecutionResult> SubscribeAsync(GraphQuery query) { return(_subscriptionExecuter.SubscribeAsync(new ExecutionOptions { Schema = _schema, OperationName = query.OperationName, Inputs = query.GetInputs(), Query = query.Query })); }
private Task <SubscriptionExecutionResult> SubscribeAsync(GraphQLQuery query, OperationMessageContext op) { var options = op.Connection.Options; return(_subscriptionExecuter.SubscribeAsync(new ExecutionOptions { Schema = _schema, OperationName = query.OperationName, Inputs = query.GetInputs(), Query = query.Query, UserContext = options?.BuildUserContext?.Invoke(op) })); }
public async Task <SubscriptionExecutionResult> Subscribe(GraphQLDocument bdy, object context) { var executionOptions = new ExecutionOptions { Schema = _schema, Query = bdy.Query, OperationName = bdy.OperationName, Inputs = bdy.Variables.ToInputs(), ExposeExceptions = false, UserContext = context }; // call ChatSubscription's subscriber var result = await _subscriptionExecuter.SubscribeAsync(executionOptions); return(result); }
private Task <SubscriptionExecutionResult> SubscribeAsync(ExecutionOptions options) { return(_subscriptionExecuter.SubscribeAsync(options)); }