public async Task Streaming_From_Server_CancelToken_works() { var hc = new HubConnectionBuilder() .WithUrl(ProxyTestHostHolder._mainHubString).Build(); await hc.StartAsync(); var client = HubProxyBuilder.CreateProxy <IBar>(hc); var cts = new CancellationTokenSource(); var res = HubProxy.WithCancellationToken(client, cts.Token, r => r.StreamFromServer("merp")); //var res = client.StreamFromServer("nerp"); List <int> results = new List <int>(); await Assert.ThrowsAsync <TaskCanceledException>(async() => { var counter = 0; await foreach (var myInt in res) { results.Add(myInt); counter = counter + 1; if (counter == 2) { cts.Cancel(); } } }); Assert.Equal(2, results.Count); }