Пример #1
0
        public static IServiceCollection AddPrintlyClient(
            this IServiceCollection services,
            PrintlyClientConfiguration configuration)
        {
            services.AddHttpClient <IHttpAdapter <SystemClient>, HttpAdapter <SystemClient> > (client =>
            {
                client.BaseAddress = new Uri(configuration.BaseUrl);
            })
            .AddPolicyHandler(GetRetryPolicy(
                                  configuration.RetryCount,
                                  configuration.SleepDuration))
            .SetHandlerLifetime(configuration.HttpMessageHandlerLifetime);

            services.AddHttpClient <IHttpAdapter <PrintersClient>, HttpAdapter <PrintersClient> >(client =>
            {
                client.BaseAddress = new Uri(configuration.BaseUrl);
            })
            .AddPolicyHandler(GetRetryPolicy(
                                  configuration.RetryCount,
                                  configuration.SleepDuration))
            .SetHandlerLifetime(configuration.HttpMessageHandlerLifetime);

            services.AddTransient <ISystemClient, SystemClient>();
            services.AddTransient <IPrintersClient, PrintersClient>();
            return(services);
        }
Пример #2
0
        public void GivenConfig_WhenAddPrintlyClient_ThenClientAddedForInjection()
        {
            // Arrange
            var config = new PrintlyClientConfiguration
            {
                BaseUrl       = "http://www.test.com/",
                RetryCount    = 10,
                SleepDuration = new System.TimeSpan(0, 1, 0),
                HttpMessageHandlerLifetime = new System.TimeSpan(0, 10, 0)
            };
            var sut = new ServiceCollection();

            // Act
            sut.AddPrintlyClient(config);
            var serviceProvider = sut.BuildServiceProvider();

            // Assert
            var systemClientHttpAdapter = serviceProvider.GetService <IHttpAdapter <SystemClient> >();

            Assert.Equal(config.BaseUrl, systemClientHttpAdapter.BaseUrl);
            Assert.NotNull(serviceProvider.GetServices <ISystemClient>());
            var printersClientHttpAdapter = serviceProvider.GetService <IHttpAdapter <PrintersClient> >();

            Assert.Equal(config.BaseUrl, printersClientHttpAdapter.BaseUrl);
            Assert.NotNull(serviceProvider.GetServices <IPrintersClient>());
        }
Пример #3
0
        public SystemClientTests()
        {
            var config = new PrintlyClientConfiguration
            {
                BaseUrl = "http://localhost:5000",
                HttpMessageHandlerLifetime = new TimeSpan(1, 0, 0),
                RetryCount    = 3,
                SleepDuration = new TimeSpan(0, 0, 30)
            };
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddPrintlyClient(config);
            _serviceProvider = serviceCollection.BuildServiceProvider();
        }