Example #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);
        }
Example #2
0
        public async Task Streaming_To_Server_works_Under_Invoke()
        {
            var hc = new HubConnectionBuilder()
                     .WithUrl(ProxyTestHostHolder._mainHubString).Build();
            await hc.StartAsync();

            var client = HubProxyBuilder.CreateProxy <IBar>(hc, true);
            await client.StreamToServer(clientStreamData(), "nerp");

            Assert.Equal(5, GroupHub.streamCounter["nerp"].Count);
        }
Example #3
0
        public async Task TwoWay_Comms_Work_Sync()
        {
            var hc = new HubConnectionBuilder()
                     .WithUrl(ProxyTestHostHolder._mainHubString).Build();
            await hc.StartAsync();

            var client = HubProxyBuilder.CreateProxy <IBar>(hc);
            var res    = client.TestTwoWaySync("nerp");

            Assert.Contains("nerp", res);
            Assert.Contains("derp", res);
        }
Example #4
0
        private async Task _SignalRHelper_Can_Communicate_Client_Server()
        {
            var hc = new HubConnectionBuilder()
                     .WithUrl(ProxyTestHostHolder._mainHubString).Build();
            await hc.StartAsync();

            var client = HubProxyBuilder.CreateProxy <IBar>(hc);
            await client.StringType("hello");

            SpinWait.SpinUntil(() => false, TimeSpan.FromSeconds(2));
            Assert.True(GroupHub.callCounter["hello"] > 0);
        }
Example #5
0
        public async Task AlwaysInvokeAttribute_Is_Respected()
        {
            var hc = new HubConnectionBuilder()
                     .WithUrl(ProxyTestHostHolder._mainHubString).Build();
            await hc.StartAsync();

            var client = HubProxyBuilder.CreateProxy <IBar>(hc, false);
            await client.StreamToServerInvoke(clientStreamData(), "ainvoke");

            //await Task.Delay(TimeSpan.FromSeconds(5));
            Assert.Equal(5, GroupHub.streamCounter["ainvoke"].Count);
        }
Example #6
0
        public async void Void_Invokes_Work()
        {
            var hc = new HubConnectionBuilder()
                     .WithUrl(ProxyTestHostHolder._mainHubString).Build();
            await hc.StartAsync();

            var client = HubProxyBuilder.CreateProxy <IBar>(hc, true);
            var guid   = Guid.NewGuid();

            client.VoidValueType(guid);
            SpinWait.SpinUntil(() => false, TimeSpan.FromSeconds(2));
            Assert.True(GroupHub.callCounter[guid.ToString()] > 0);
        }
Example #7
0
        public async Task SendMethod_Works_Over_invoke()
        {
            var hc = new HubConnectionBuilder()
                     .WithUrl(ProxyTestHostHolder._mainHubString).Build();
            await hc.StartAsync();

            var client = HubProxyBuilder.CreateProxy <IBar>(hc, true);

            await client.StringType("invoke");

            SpinWait.SpinUntil(() => false, TimeSpan.FromSeconds(2));
            Assert.True(GroupHub.callCounter["invoke"] > 0);
        }
Example #8
0
        public async Task Streaming_To_Server_works_Under_Send()
        {
            var hc = new HubConnectionBuilder()
                     .WithUrl(ProxyTestHostHolder._mainHubString).Build();
            await hc.StartAsync();

            var client = HubProxyBuilder.CreateProxy <IBar>(hc, false);
            await client.StreamToServer(clientStreamData(), "streamserver");

            await Task.Delay(TimeSpan.FromSeconds(5));

            Assert.Equal(5, GroupHub.streamCounter["streamserver"].Count);
        }
Example #9
0
        private async Task _SignalRHelper_HubReceiverContainer_Gets_From_Server()
        {
            var hc = new HubConnectionBuilder()
                     .WithUrl(ProxyTestHostHolder._mainHubString).Build();
            await hc.StartAsync();

            var client = HubProxyBuilder.CreateProxy <IBar>(hc);
            var hubRec = new HubReceiverContainer <IFoo>(hc, new FooImpl());
            await client.StringType("hello");

            SpinWait.SpinUntil(() => false, TimeSpan.FromSeconds(2));
            Assert.True(FooImpl.callCounter["hello"] > 0);
            GC.KeepAlive(hubRec);
            hubRec.Dispose();
        }
Example #10
0
        public async Task AlwaysSendAttribute_Is_Respected()
        {
            var hc = new HubConnectionBuilder()
                     .WithUrl(ProxyTestHostHolder._mainHubString).Build();
            await hc.StartAsync();

            var client = HubProxyBuilder.CreateProxy <IBar>(hc, true);
            await client.StreamToServerSend(clientStreamData(), "asend");

            Assert.Throws <KeyNotFoundException>(() =>
                                                 GroupHub.streamCounter["asend"].Count);
            await Task.Delay(TimeSpan.FromSeconds(5));

            Assert.Equal(5, GroupHub.streamCounter["asend"].Count);
        }
Example #11
0
        public async Task Streaming_From_Server_Channel_works()
        {
            var hc = new HubConnectionBuilder()
                     .WithUrl(ProxyTestHostHolder._mainHubString).Build();
            await hc.StartAsync();

            var        client  = HubProxyBuilder.CreateProxy <IBar>(hc);
            var        res     = client.ReadChannel();
            List <int> results = new List <int>();

            await foreach (var myInt in res.ReadAllAsync())
            {
                results.Add(myInt);
            }
            Assert.Equal(5, results.Count);
        }
Example #12
0
        private async Task _multiParam()
        {
            var hc = new HubConnectionBuilder()
                     .WithUrl(ProxyTestHostHolder._mainHubString).Build();
            await hc.StartAsync();

            var client  = HubProxyBuilder.CreateProxy <IBar>(hc);
            var hubRec  = new HubReceiverContainer <IFoo>(hc, new FooImpl());
            var theGuid = Guid.NewGuid();
            await client.MultiParam("multi", theGuid);

            SpinWait.SpinUntil(() => false, TimeSpan.FromSeconds(2));
            Assert.True(GroupHub.callCounter["multi" + theGuid] > 0);
            Assert.True(FooImpl.callCounter["multi" + theGuid] > 0);
            GC.KeepAlive(hubRec);
            hubRec.Dispose();
        }