コード例 #1
0
        private IHost GetReverseStringService()
        {
            var host = new MotorHostBuilder(new HostBuilder(), false)
                       .UseSetting(MotorHostDefaults.EnablePrometheusEndpointKey, false.ToString())
                       .ConfigureSerilog()
                       .ConfigurePrometheus()
                       .ConfigureServices((_, services) =>
            {
                services.AddTransient(provider =>
                {
                    var mock = new Mock <IApplicationNameService>();
                    mock.Setup(t => t.GetVersion()).Returns("test");
                    mock.Setup(t => t.GetLibVersion()).Returns("test");
                    mock.Setup(t => t.GetSource()).Returns(new Uri("motor://test"));
                    return(mock.Object);
                });
                services.AddTransient <ISingleOutputService <string, string>, ReverseStringConverter>();
                services.AddTransient <IMessageSerializer <string>, StringSerializer>();
                services.AddTransient <IMessageDeserializer <string>, StringDeserializer>();
                services.AddTransient <INoOutputService <string>, SingleOutputServiceAdapter <string, string> >();
                services.AddTransient <DelegatingMessageHandler <string>, TracingDelegatingMessageHandler <string> >();
                services.AddQueuedGenericService <string>();
                //services.AddSingleton(provider => tracer);
                services.AddLogging(loggingBuilder => loggingBuilder.AddSerilog(dispose: true));
            })
                       .ConfigureConsumer <string>((context, builder) =>
            {
                builder.AddRabbitMQ();
                builder.AddDeserializer <StringDeserializer>();
            })
                       .ConfigurePublisher <string>((context, builder) =>
            {
                builder.AddRabbitMQ();
                builder.AddSerializer <StringSerializer>();
            })
                       .ConfigureAppConfiguration((builder, config) =>
            {
                config.AddJsonFile("appsettings.json", true, false);
                config.AddEnvironmentVariables();
            })
                       .Build();

            return(host);
        }
コード例 #2
0
        private IHost GetStringService <TConverter>() where TConverter : class, ISingleOutputService <string, string>
        {
            var host = new MotorHostBuilder(new HostBuilder())
                       .UseSetting(MotorHostDefaults.EnablePrometheusEndpointKey, false.ToString())
                       .ConfigureSerilog()
                       .ConfigurePrometheus()
                       .ConfigureSingleOutputService <string, string>()
                       .ConfigureServices((hostContext, services) =>
            {
                services.AddTransient(provider =>
                {
                    var mock = new Mock <IApplicationNameService>();
                    mock.Setup(t => t.GetVersion()).Returns("test");
                    mock.Setup(t => t.GetLibVersion()).Returns("test");
                    mock.Setup(t => t.GetSource()).Returns(new Uri("motor://test"));
                    return(mock.Object);
                });
                services.AddTransient <ISingleOutputService <string, string>, TConverter>();
            })
                       .ConfigureConsumer <string>((context, builder) =>
            {
                builder.AddRabbitMQ();
                builder.AddDeserializer <StringDeserializer>();
            })
                       .ConfigurePublisher <string>((context, builder) =>
            {
                builder.AddRabbitMQ();
                builder.AddSerializer <StringSerializer>();
            })
                       .ConfigureAppConfiguration((builder, config) =>
            {
                config.AddJsonFile("appsettings.json", true, false);
                config.AddEnvironmentVariables();
            })
                       .ConfigureDefaultHttpClient()
                       .Build();

            return(host);
        }
コード例 #3
0
        public void GetHttpClient_GetTwoDifferentHttpClients()
        {
            var hostBuilder = new MotorHostBuilder(new HostBuilder())
                              .ConfigurePrometheus()
                              .ConfigureDefaultHttpClient()
                              .ConfigureServices((hostContext, services) =>
            {
                services.AddTransient(provider =>
                {
                    var mock = new Mock <IApplicationNameService>();
                    mock.Setup(t => t.GetVersion()).Returns("test");
                    mock.Setup(t => t.GetLibVersion()).Returns("test");
                    return(mock.Object);
                });
                services.AddDefaultHttpClient("test1");
                services.AddDefaultHttpClient("test2");
            });
            var httpClientFactory = hostBuilder.Build().Services.GetService <IHttpClientFactory>();
            var httpClient1       = httpClientFactory.CreateClient("test1");
            var httpClient2       = httpClientFactory.CreateClient("test2");

            Assert.NotNull(httpClient1);
            Assert.NotNull(httpClient2);
        }