Ejemplo n.º 1
0
        public void LocalHostListenOptionsClonesConnectionMiddleware()
        {
            var localhostListenOptions = new LocalhostListenOptions(1004);

            localhostListenOptions.ConnectionAdapters.Add(new PassThroughConnectionAdapter());
            var serviceProvider = new ServiceCollection().BuildServiceProvider();

            localhostListenOptions.KestrelServerOptions = new KestrelServerOptions
            {
                ApplicationServices = serviceProvider
            };
            var middlewareRan = false;

            localhostListenOptions.Use(next =>
            {
                middlewareRan = true;
                return(context => Task.CompletedTask);
            });

            var clone = localhostListenOptions.Clone(IPAddress.IPv6Loopback);
            var app   = clone.Build();

            // Execute the delegate
            app(null);

            Assert.True(middlewareRan);
            Assert.NotNull(clone.KestrelServerOptions);
            Assert.NotNull(serviceProvider);
            Assert.Same(serviceProvider, clone.ApplicationServices);
            Assert.Single(clone.ConnectionAdapters);
        }