public void SetUp()
        {
            var serviceCollection = new ServiceCollection();
            var config            = new ConfigurationRoot(new List <IConfigurationProvider>());
            var builder           = new OcelotBuilder(serviceCollection, config);
            var services          = serviceCollection.BuildServiceProvider();
            var loggerFactory     = services.GetService <IOcelotLoggerFactory>();
            var drpf        = services.GetService <IDownstreamRouteProviderFactory>();
            var multiplexer = services.GetService <IMultiplexer>();

            _next = async context =>
            {
                await Task.CompletedTask;
                throw new Exception("BOOM");
            };

            _middleware = new DownstreamRouteFinderMiddleware(_next, loggerFactory, drpf, multiplexer);
            var httpContext = new DefaultHttpContext();

            httpContext.Request.Path        = new PathString("/test");
            httpContext.Request.QueryString = new QueryString("?a=b");
            httpContext.Request.Headers.Add("Host", "most");

            _downstreamContext = new DownstreamContext(httpContext)
            {
                Configuration = new InternalConfiguration(new List <ReRoute>(), null, null, null, null, null, null, null)
            };
        }
        public void RegisterAppConfigurationProviderFactory()
        {
            var serviceCollection = new ServiceCollection();
            var builder           = new OcelotBuilder(serviceCollection, new ConfigurationBuilder().Build());

            builder.AddAppConfiguration();

            ServiceDiscoveryFinderDelegate factory = serviceCollection
                                                     .BuildServiceProvider()
                                                     .GetService <ServiceDiscoveryFinderDelegate>();

            factory.Should().NotBeNull();
        }
        public void SetUp()
        {
            var serviceCollection = new ServiceCollection();
            var config            = new ConfigurationRoot(new List <IConfigurationProvider>());
            var builder           = new OcelotBuilder(serviceCollection, config);
            var services          = serviceCollection.BuildServiceProvider();
            var loggerFactory     = services.GetService <IOcelotLoggerFactory>();
            var configRepo        = services.GetService <IInternalConfigurationRepository>();
            var repo = services.GetService <IRequestScopedDataRepository>();

            _next = async context => {
                await Task.CompletedTask;
                throw new Exception("BOOM");
            };
            _middleware        = new ExceptionHandlerMiddleware(_next, loggerFactory, configRepo, repo);
            _downstreamContext = new DownstreamContext(new DefaultHttpContext());
        }
        public void CreateProvider()
        {
            var services = new ServiceCollection();
            var builder  = new OcelotBuilder(services, new ConfigurationBuilder().Build());

            builder.Services.AddSingleton(new ConfigurationBuilder().Build());
            builder.Services.AddMemoryCache();

            var factory = AppConfigurationProviderFactory.Get;

            IServiceDiscoveryProvider provider = factory(
                services.BuildServiceProvider(),
                new ServiceProviderConfiguration("", "", "", 1, "", "", 1),
                new DownstreamRouteBuilder().WithServiceName("Users").Build());

            provider.Should().NotBeNull();
        }