public virtual async Task RequestCanBeAborted(string scheme)
        {
            Test.EndPoint.Scheme = scheme;

            var connectionIds = new List <string>();

            Test.App.OnRequest = async message =>
            {
                var httpContext = new DefaultHttpContext(message.Features);
                httpContext.Abort();
            };

            await Test.Server.StartAsync();

            var error1 = await Assert.ThrowsAsync <HttpRequestException>(async() => await Test.Client.GetStringAsync("/request1"));

            var error2 = await Assert.ThrowsAsync <HttpRequestException>(async() => await Test.Client.GetStringAsync("/request2"));

            var error3 = await Assert.ThrowsAsync <HttpRequestException>(async() => await Test.Client.GetStringAsync("/request3"));

            await Test.Server.StopAsync();

            Assert.Equal(3, (from log in Test.Logging.LogItems where log.EventId.Name == "SocketAccepted" select log).Count());
        }