public async Task Send_Start_ReceiveDataOnMutation() { // arrange TestServer testServer = CreateTestServer(); WebSocketClient client = CreateWebSocketClient(testServer); WebSocket webSocket = await client .ConnectAsync(SubscriptionUri, CancellationToken.None); await ConnectAsync(webSocket); var query = new SubscriptionQuery { Query = "subscription { foo }" }; // act string id = await webSocket.SendSubscriptionStartAsync(query); // assert await testServer.SendRequestAsync(new ClientQueryRequest { Query = "mutation { sendFoo }" }); GenericOperationMessage message = await WaitForMessage(webSocket, MessageTypes.Subscription.Data); Assert.NotNull(message); Assert.Equal(MessageTypes.Subscription.Data, message.Type); Dictionary <string, object> result = message.Payload .ToObject <Dictionary <string, object> >(); Assert.True(result.ContainsKey("data")); }
public static async Task <string> SendSubscriptionStartAsync( this WebSocket webSocket, SubscriptionQuery query) { string id = Guid.NewGuid().ToString("N"); await SendMessageAsync( webSocket, new StartOperationMessage { Type = MessageTypes.Subscription.Start, Id = id, Payload = query }); return(id); }