private static ServiceCollection ConfigureServices() { Mock <ITelemetryService> mockITelemetryService = new Mock <ITelemetryService>(); ITelemetryService telemetryServiceResolver = mockITelemetryService.Object; ServiceCollection services = new ServiceCollection(); _loggerFor_InvalidTestSearchHttpClientWithLongCircuitBreakDelay = new LoggerFor_TestSearchHttpClient(); _loggerFor_InvalidTestSearchHttpClientWithShortCircuitBreakDelay = new LoggerFor_TestSearchHttpClient(); _loggerFor_ValidTestSearchHttpClient = new LoggerFor_TestSearchHttpClient(); _loggerFor_InvalidTestSearchHttpClientRetryCountExpires = new LoggerFor_TestSearchHttpClient(); services.AddHttpClient <TestSearchHttpClient>(_nameFor_InvalidTestSearchHttpClientWithLongCircuitBreakDelay, c => c.BaseAddress = new Uri(_longInvalidAddress)) .AddPolicyHandler(SearchClientPolicies.SearchClientFallBackCircuitBreakerPolicy(_loggerFor_InvalidTestSearchHttpClientWithLongCircuitBreakDelay, "InvalidTestSearchHttpClientWithLongCircuitBreakDelay", telemetryServiceResolver)) .AddPolicyHandler(SearchClientPolicies.SearchClientWaitAndRetryPolicy(_retryCount, _waitBetweenRetriesInMilliseconds, _loggerFor_InvalidTestSearchHttpClientWithLongCircuitBreakDelay, "InvalidTestSearchHttpClientWithLongCircuitBreakDelay", telemetryServiceResolver)) .AddPolicyHandler(SearchClientPolicies.SearchClientCircuitBreakerPolicy( _circuitBreakerFailAfter, TimeSpan.FromSeconds(_circuitBreakerLongDelaySeconds), _loggerFor_InvalidTestSearchHttpClientWithLongCircuitBreakDelay, "InvalidTestSearchHttpClientWithLongCircuitBreakDelay", telemetryServiceResolver)); services.AddHttpClient <TestSearchHttpClient>(_nameFor_InvalidTestSearchHttpClientWithShortCircuitBreakDelay, c => c.BaseAddress = new Uri(_shortInvalidAddress)) .AddPolicyHandler(SearchClientPolicies.SearchClientFallBackCircuitBreakerPolicy(_loggerFor_InvalidTestSearchHttpClientWithShortCircuitBreakDelay, "InvalidTestSearchHttpClientWithShortCircuitBreakDelay", telemetryServiceResolver)) .AddPolicyHandler(SearchClientPolicies.SearchClientWaitAndRetryPolicy(_retryCount, _waitBetweenRetriesInMilliseconds, _loggerFor_InvalidTestSearchHttpClientWithShortCircuitBreakDelay, "InvalidTestSearchHttpClientWithShortCircuitBreakDelay", telemetryServiceResolver)) .AddPolicyHandler(SearchClientPolicies.SearchClientCircuitBreakerPolicy( _circuitBreakerFailAfter, TimeSpan.FromSeconds(_circuitBreakerShortDelaySeconds), _loggerFor_InvalidTestSearchHttpClientWithShortCircuitBreakDelay, "InvalidTestSearchHttpClientWithShortCircuitBreakDelay", telemetryServiceResolver)); services.AddHttpClient <TestSearchHttpClient>(_nameFor_ValidTestSearchHttpClient, c => c.BaseAddress = new Uri(_validAddress)) .AddPolicyHandler(SearchClientPolicies.SearchClientFallBackCircuitBreakerPolicy(_loggerFor_ValidTestSearchHttpClient, "InvalidTestSearchHttpClientWithShortCircuitBreakDelay", telemetryServiceResolver)) .AddPolicyHandler(SearchClientPolicies.SearchClientWaitAndRetryPolicy(_retryCount, _waitBetweenRetriesInMilliseconds, _loggerFor_ValidTestSearchHttpClient, "InvalidTestSearchHttpClientWithShortCircuitBreakDelay", telemetryServiceResolver)) .AddPolicyHandler(SearchClientPolicies.SearchClientCircuitBreakerPolicy( _circuitBreakerFailAfter, TimeSpan.FromSeconds(_circuitBreakerShortDelaySeconds), _loggerFor_ValidTestSearchHttpClient, "InvalidTestSearchHttpClientWithShortCircuitBreakDelay", telemetryServiceResolver)); services.AddHttpClient <TestSearchHttpClient>(_nameFor_InvalidTestSearchHttpClientRetryCountExpires, c => c.BaseAddress = new Uri(_shortInvalidAddress_2)) .AddPolicyHandler(SearchClientPolicies.SearchClientFallBackCircuitBreakerPolicy(_loggerFor_InvalidTestSearchHttpClientRetryCountExpires, "InvalidTestSearchHttpClientRetryCountExpires", telemetryServiceResolver)) .AddPolicyHandler(SearchClientPolicies.SearchClientWaitAndRetryPolicy(_retryCount_2, _waitBetweenRetriesInMilliseconds, _loggerFor_InvalidTestSearchHttpClientRetryCountExpires, "InvalidTestSearchHttpClientRetryCountExpires", telemetryServiceResolver)) .AddPolicyHandler(SearchClientPolicies.SearchClientCircuitBreakerPolicy( _circuitBreakerFailAfter_2, TimeSpan.FromSeconds(_circuitBreakerShortDelaySeconds), _loggerFor_InvalidTestSearchHttpClientRetryCountExpires, "InvalidTestSearchHttpClientRetryCountExpires", telemetryServiceResolver)); return(services); }
private ServiceCollection ConfigureServices(ITestOutputHelper output) { Mock <ITelemetryService> mockITelemetryService = new Mock <ITelemetryService>(); ITelemetryService telemetryServiceResolver = mockITelemetryService.Object; ServiceCollection services = new ServiceCollection(); _logger = new LoggerFor_TestSearchHttpClient(output); services.AddSingleton <ILogger>(_logger); AddTestHttpClient( services, _longInvalidAddress, _nameFor_InvalidTestSearchHttpClientWithLongCircuitBreakDelay, _retryCount, _waitBetweenRetriesInMilliseconds, _circuitBreakerTimeoutLongInMilliseconds, _circuitBreakerFailAfter, _circuitBreakerShortDelaySeconds, telemetryServiceResolver); AddTestHttpClient( services, _shortInvalidAddress, _nameFor_InvalidTestSearchHttpClientWithShortCircuitBreakDelay, _retryCount, _waitBetweenRetriesInMilliseconds, _circuitBreakerTimeoutLongInMilliseconds, _circuitBreakerFailAfter, _circuitBreakerShortDelaySeconds, telemetryServiceResolver); AddTestHttpClient( services, _validAddress, _nameFor_ValidTestSearchHttpClient, _retryCount, _waitBetweenRetriesInMilliseconds, _circuitBreakerTimeoutLongInMilliseconds, _circuitBreakerFailAfter, _circuitBreakerShortDelaySeconds, telemetryServiceResolver); AddTestHttpClient( services, _shortInvalidAddress_2, _nameFor_InvalidTestSearchHttpClientRetryCountExpires, _retryCount_2, _waitBetweenRetriesInMilliseconds, _circuitBreakerTimeoutLongInMilliseconds, _circuitBreakerFailAfter_2, _circuitBreakerShortDelaySeconds, telemetryServiceResolver); AddTestHttpClient( services, _403Address, _nameFor_SearchHttpClientReturning403, _retryCount, _waitBetweenRetriesInMilliseconds, _circuitBreakerTimeoutLongInMilliseconds, _circuitBreakerFailAfter, _circuitBreakerLongDelaySeconds, telemetryServiceResolver); AddTestHttpClient( services, _timeoutAddress, _nameFor_SearchHttpClientTimingOut, _retryCount, _waitBetweenRetriesInMilliseconds, _circuitBreakerTimeoutShortInMilliseconds, _circuitBreakerFailAfter, _circuitBreakerShortDelaySeconds, telemetryServiceResolver); return(services); }