コード例 #1
0
        private static HttpConnection CreateConnection(HttpMessageHandler httpHandler = null, ILoggerFactory loggerFactory = null, string url = null, ITransport transport = null, ITransportFactory transportFactory = null, HttpTransportType transportType = HttpTransportType.LongPolling)
        {
            var httpOptions = new HttpOptions()
            {
                HttpMessageHandler = (httpMessageHandler) => httpHandler ?? TestHttpMessageHandler.CreateDefault(),
            };

            return(CreateConnection(httpOptions, loggerFactory, url, transport, transportFactory, transportType));
        }
コード例 #2
0
        private static HttpConnection CreateConnection(HttpMessageHandler httpHandler = null, ILoggerFactory loggerFactory = null, string url = null, ITransport transport = null)
        {
            loggerFactory = loggerFactory ?? NullLoggerFactory.Instance;
            var httpOptions = new HttpOptions()
            {
                HttpMessageHandler = httpHandler ?? TestHttpMessageHandler.CreateDefault(),
            };
            var uri = new Uri(url ?? "http://fakeuri.org/");

            var connection = (transport != null) ?
                             new HttpConnection(uri, new TestTransportFactory(transport), loggerFactory, httpOptions) :
                             new HttpConnection(uri, TransportType.LongPolling, loggerFactory, httpOptions);

            return(connection);
        }
コード例 #3
0
        public async Task HttpOptionsSetOntoHttpClientHandler()
        {
            var testHttpHandler = TestHttpMessageHandler.CreateDefault();

            var negotiateUrlTcs = new TaskCompletionSource <string>();

            testHttpHandler.OnNegotiate((request, cancellationToken) =>
            {
                negotiateUrlTcs.TrySetResult(request.RequestUri.ToString());
                return(ResponseUtils.CreateResponse(HttpStatusCode.OK,
                                                    ResponseUtils.CreateNegotiationContent()));
            });

            HttpClientHandler httpClientHandler = null;

            var httpOptions = new HttpConnectionOptions();

            httpOptions.Url = new Uri("http://fakeuri.org/");
            httpOptions.HttpMessageHandlerFactory = inner =>
            {
                httpClientHandler = (HttpClientHandler)inner;
                return(testHttpHandler);
            };
            httpOptions.Cookies.Add(new Cookie("Name", "Value", string.Empty, "fakeuri.org"));
            var clientCertificate = new X509Certificate(Array.Empty <byte>());

            httpOptions.ClientCertificates.Add(clientCertificate);
            httpOptions.UseDefaultCredentials = false;
            httpOptions.Credentials           = Mock.Of <ICredentials>();
            httpOptions.Proxy      = Mock.Of <IWebProxy>();
            httpOptions.Transports = HttpTransportType.LongPolling;

            await WithConnectionAsync(
                CreateConnection(httpOptions),
                async (connection) =>
            {
                await connection.StartAsync().DefaultTimeout();
            });

            Assert.NotNull(httpClientHandler);
            Assert.Equal(1, httpClientHandler.CookieContainer.Count);
            Assert.Single(httpClientHandler.ClientCertificates);
            Assert.Same(clientCertificate, httpClientHandler.ClientCertificates[0]);
            Assert.False(httpClientHandler.UseDefaultCredentials);
            Assert.Same(httpOptions.Proxy, httpClientHandler.Proxy);
            Assert.Same(httpOptions.Credentials, httpClientHandler.Credentials);
        }
コード例 #4
0
        public async Task SendsDeleteRequestWhenTransportCompleted()
        {
            var handler = TestHttpMessageHandler.CreateDefault();

            using (var httpClient = new HttpClient(handler))
            {
                var longPollingTransport = new LongPollingTransport(httpClient);

                await longPollingTransport.StartAsync(TestUri, TransferFormat.Binary);

                await longPollingTransport.StopAsync();

                var deleteRequest = handler.ReceivedRequests.SingleOrDefault(r => r.Method == HttpMethod.Delete);
                Assert.NotNull(deleteRequest);
                Assert.Equal(TestUri, deleteRequest.RequestUri);
            }
        }
コード例 #5
0
        private static HttpConnection CreateConnection(
            HttpMessageHandler httpHandler = null,
            ILoggerFactory loggerFactory   = null,
            string url           = null,
            ITransport transport = null,
            ITransportFactory transportFactory       = null,
            HttpTransportType?transportType          = null,
            Func <Task <string> > accessTokenFactory = null)
        {
            var httpOptions = new HttpConnectionOptions
            {
                Transports = transportType ?? HttpTransportType.LongPolling,
                HttpMessageHandlerFactory = (httpMessageHandler) => httpHandler ?? TestHttpMessageHandler.CreateDefault(),
                AccessTokenFactory        = accessTokenFactory,
            };

            if (url != null)
            {
                httpOptions.Url = new Uri(url);
            }

            return(CreateConnection(httpOptions, loggerFactory, transport, transportFactory));
        }