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); }
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); }
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); }