Пример #1
0
        public SystemUnderTest(Action <IWebHostBuilder> configure = null)
        {
            var builder = new HostBuilder()
                          .ConfigureWebHostDefaults(webHost =>
            {
                webHost
                .UseTestServer()
                .UseStartup <TStartup>();

                configure?.Invoke(webHost);
            })
                          .UseSerilog();

            host   = builder.Start();
            server = host.GetTestServer();

            // Need to set the response version to 2.0.
            // Required because of this TestServer issue - https://github.com/aspnet/AspNetCore/issues/16940
            var responseVersionHandler = new ResponseVersionHandler();

            responseVersionHandler.InnerHandler = server.CreateHandler();

            var testClient = new HttpClient(responseVersionHandler);

            testClient.BaseAddress = new Uri("http://localhost");

            HttpClient = testClient;
        }
Пример #2
0
        public GrpcTestFixture(Action <IServiceCollection>?initialConfigureServices)
        {
            LoggerFactory = new LoggerFactory();
            LoggerFactory.AddProvider(new ForwardingLoggerProvider((logLevel, category, eventId, message, exception) =>
            {
                LoggedMessage?.Invoke(logLevel, category, eventId, message, exception);
            }));

            var builder = new HostBuilder()
                          .ConfigureServices(services =>
            {
                initialConfigureServices?.Invoke(services);
                services.AddSingleton <ILoggerFactory>(LoggerFactory);
            })
                          .ConfigureWebHostDefaults(webHost =>
            {
                webHost
                .UseTestServer()
                .UseStartup <TStartup>();
            });

            _host   = builder.Start();
            _server = _host.GetTestServer();

            // Need to set the response version to 2.0.
            // Required because of this TestServer issue - https://github.com/aspnet/AspNetCore/issues/16940
            var responseVersionHandler = new ResponseVersionHandler();

            responseVersionHandler.InnerHandler = _server.CreateHandler();

            Handler = responseVersionHandler;
        }
Пример #3
0
        public GrpcTestFixture(Action <IServiceCollection>?initialConfigureServices)
        {
            this.LoggerFactory = new LoggerFactory();
            this.LoggerFactory.AddProvider(new ForwardingLoggerProvider((logLevel, category, eventId, message, exception) => LoggedMessage?.Invoke(logLevel, category, eventId, message, exception)));

            IHostBuilder builder = new HostBuilder()
                                   .ConfigureServices(services =>
            {
                initialConfigureServices?.Invoke(services);
                services.AddSingleton <ILoggerFactory>(this.LoggerFactory);
            })
                                   .ConfigureWebHostDefaults(webHost =>
            {
                webHost
                .UseTestServer()
                .UseStartup <TStartup>();
            });

            this.host   = builder.Start();
            this.server = this.host.GetTestServer();

            // Need to set the response version to 2.0.
            // Required because of this TestServer issue - https://github.com/aspnet/AspNetCore/issues/16940
            var responseVersionHandler = new ResponseVersionHandler
            {
                InnerHandler = this.server.CreateHandler()
            };

            var client = new HttpClient(responseVersionHandler)
            {
                BaseAddress = new Uri("http://localhost")
            };

            this.Client = client;
        }
Пример #4
0
        public async Task TestResponse()
        {
            var application = new TestApplication(new string[0]);

            using var host = await application.GetHostBuilder().ConfigureWebHostDefaults(builder =>
            {
                builder.UseTestServer();
            }).StartAsync();

            var service = host.GetTestServer();
            var responseVersionHandler = new ResponseVersionHandler {
                InnerHandler = service.CreateHandler()
            };
            var client = new HttpClient(responseVersionHandler)
            {
                BaseAddress = new Uri("http://localhost")
            };

            using var channel = GrpcChannel.ForAddress(client.BaseAddress,
                                                       new GrpcChannelOptions { HttpClient = client });
            var grpcClient = new TestService.TestServiceClient(channel);

            var response = await grpcClient.RequestAsync(new TestRequest());

            Assert.True(response.ResponseInfo.IsSuccess);
        }
Пример #5
0
        public static HttpClient CreateFixedClient(this IHost host)
        {
            AppContext.TryGetSwitch(SWITCH_NAME, out var currentSwitchValue);
            if (currentSwitchValue == false)
            {
                AppContext.SetSwitch(SWITCH_NAME, true);
            }

            // Need to set the response version to 2.0.
            // Required because of this TestServer issue - https://github.com/aspnet/AspNetCore/issues/16940
            var responseVersionHandler = new ResponseVersionHandler();

            responseVersionHandler.InnerHandler = host.GetTestServer().CreateHandler();

            var client = new HttpClient(responseVersionHandler)
            {
                BaseAddress           = new Uri("http://localhost"),
                DefaultRequestVersion = new Version(2, 0)
            };

            if (currentSwitchValue == false)
            {
                AppContext.SetSwitch(SWITCH_NAME, false);
            }

            return(client);
        }
Пример #6
0
        public GrpcTestFixture(Action <IServiceCollection>?initialConfigureServices)
        {
            LoggerFactory = new LoggerFactory();

            var builder = new HostBuilder()
                          .ConfigureServices(services =>
            {
                initialConfigureServices?.Invoke(services);
                services.TryAddSingleton <ILoggerFactory>(LoggerFactory);
            })
                          .ConfigureWebHostDefaults(webHost =>
            {
                webHost
                .UseTestServer()
                .UseStartup <TStartup>();
            });

            _host   = builder.Start();
            _server = _host.GetTestServer();

            // Need to set the response version to 2.0.
            // Required because of this TestServer issue - https://github.com/aspnet/AspNetCore/issues/16940
            var responseVersionHandler = new ResponseVersionHandler();

            responseVersionHandler.InnerHandler = _server.CreateHandler();

            var client = new HttpClient(responseVersionHandler);

            client.BaseAddress = new Uri("http://localhost");

            Client = client;
        }
        HttpClient ConfigureHttpClient()
        {
            // Need to set the response version to 2.0.
            // Required because of this TestServer issue - https://github.com/aspnet/AspNetCore/issues/16940
            var responseVersionHandler = new ResponseVersionHandler();

            responseVersionHandler.InnerHandler = server.CreateHandler();

            var client = new HttpClient(responseVersionHandler);

            client.BaseAddress = new Uri("http://localhost");

            return(client);
        }
Пример #8
0
        public ServiceTests()
        {
            var builder = new HostBuilder().ConfigureWebHostDefaults(webHost =>
            {
                webHost
                .UseTestServer()
                .UseStartup <Startup>();
            });

            var _host = builder.Start();

            _server = _host.GetTestServer();

            // Need to set the response version to 2.0.
            // Required because of this TestServer issue - https://github.com/aspnet/AspNetCore/issues/16940
            var responseVersionHandler = new ResponseVersionHandler();

            responseVersionHandler.InnerHandler = _server.CreateHandler();

            _client             = new HttpClient(responseVersionHandler);
            _client.BaseAddress = new Uri("http://localhost");
        }