public void ConfigureDefaultsAppliesToNewConfigureEndpoints()
    {
        var serverOptions = CreateServerOptions();

        serverOptions.ConfigureEndpointDefaults(opt =>
        {
            opt.Protocols = HttpProtocols.Http1;
        });

        serverOptions.ConfigureHttpsDefaults(opt =>
        {
            opt.ServerCertificate      = TestResources.GetTestCertificate();
            opt.ServerCertificateChain = TestResources.GetTestChain();
            opt.ClientCertificateMode  = ClientCertificateMode.RequireCertificate;
        });

        var ran1   = false;
        var ran2   = false;
        var config = new ConfigurationBuilder().AddInMemoryCollection(new[]
        {
            new KeyValuePair <string, string>("Endpoints:End1:Url", "https://*:5001"),
        }).Build();

        serverOptions.Configure(config)
        .Endpoint("End1", opt =>
        {
            ran1 = true;
            Assert.True(opt.IsHttps);
            Assert.NotNull(opt.HttpsOptions.ServerCertificate);
            Assert.NotNull(opt.HttpsOptions.ServerCertificateChain);
            Assert.Equal(2, opt.HttpsOptions.ServerCertificateChain.Count);
            Assert.Equal(ClientCertificateMode.RequireCertificate, opt.HttpsOptions.ClientCertificateMode);
            Assert.Equal(HttpProtocols.Http1, opt.ListenOptions.Protocols);
        })
        .LocalhostEndpoint(5002, opt =>
        {
            ran2 = true;
            Assert.Equal(HttpProtocols.Http1, opt.Protocols);
        })
        .Load();

        Assert.True(ran1);
        Assert.True(ran2);

        Assert.True(serverOptions.ConfigurationBackedListenOptions[0].IsTls);
        Assert.False(serverOptions.CodeBackedListenOptions[0].IsTls);
    }
        public (X509Certificate2, X509Certificate2Collection) LoadCertificate(CertificateConfig certInfo, string endpointName)
        {
            if (certInfo is null)
            {
                return(null, null);
            }

            var cert = TestResources.GetTestCertificate();

            CertToPathDictionary.Add(cert, certInfo.Path);

            var fullChain = TestResources.GetTestChain();

            CertToFullChain[cert] = fullChain;

            return(cert, fullChain);
        }