public async Task UseCallback_CallbackThrowsException_ExceptionPropagatesAsBaseException()
        {
            HttpClientHandler handler = CreateHttpClientHandler();
            using (HttpClient client = CreateHttpClient(handler))
            {
                var e = new DivideByZeroException();
                handler.ServerCertificateCustomValidationCallback = delegate { throw e; };

                HttpRequestException ex = await Assert.ThrowsAsync<HttpRequestException>(() => client.GetAsync(Configuration.Http.SecureRemoteEchoServer));
                Assert.Same(e, ex.GetBaseException());
            }
        }
Exemplo n.º 2
0
        public async Task UseCallback_CallbackThrowsSpecificException_SpecificExceptionPropagatesAsBaseException()
        {
            var handler = new WinHttpHandler();

            handler.ServerCertificateValidationCallback = CustomServerCertificateValidationCallback;
            using (var client = new HttpClient(handler))
            {
                _validationCallbackHistory.ThrowException = true;
                HttpRequestException ex = await Assert.ThrowsAsync <HttpRequestException>(() =>
                                                                                          client.GetAsync(System.Net.Test.Common.Configuration.Http.SecureRemoteEchoServer));

                Assert.True(ex.GetBaseException() is CustomException);
            }
        }
Exemplo n.º 3
0
        public async Task UseCallback_CallbackThrowsException_ExceptionPropagatesAsBaseException()
        {
            if (!BackendSupportsCustomCertificateHandling)
            {
                Console.WriteLine($"Skipping {nameof(UseCallback_CallbackThrowsException_ExceptionPropagatesAsBaseException)}()");
                return;
            }

            HttpClientHandler handler = CreateHttpClientHandler();

            using (HttpClient client = CreateHttpClient(handler))
            {
                var e = new DivideByZeroException();
                handler.ServerCertificateCustomValidationCallback = delegate { throw e; };

                HttpRequestException ex = await Assert.ThrowsAsync <HttpRequestException>(() => client.GetAsync(Configuration.Http.SecureRemoteEchoServer));

                Assert.Same(e, ex.GetBaseException());
            }
        }
        public async Task UseCallback_CallbackThrowsException_ExceptionPropagatesAsBaseException()
        {
            if (BackendDoesNotSupportCustomCertificateHandling) // can't use [Conditional*] right now as it's evaluated at the wrong time for the managed handler
            {
                Console.WriteLine($"Skipping {nameof(UseCallback_CallbackThrowsException_ExceptionPropagatesAsBaseException)}()");
                return;
            }

            var handler = new HttpClientHandler();

            using (var client = new HttpClient(handler))
            {
                var e = new DivideByZeroException();
                handler.ServerCertificateCustomValidationCallback = delegate { throw e; };

                HttpRequestException ex = await Assert.ThrowsAsync <HttpRequestException>(() => client.GetAsync(Configuration.Http.SecureRemoteEchoServer));

                Assert.Same(e, ex.GetBaseException());
            }
        }