Пример #1
0
        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);
        }