public ServiceRepositoryClient(RepositoryAgentOptions options, IHttpClientFactory httpClientFactory, ILogger <ServiceRepositoryClient> logger, IApiDescriptionProvider apiDescriptionProvider) { _options = options ?? throw new ArgumentNullException(nameof(options)); _httpClientFactory = httpClientFactory ?? throw new ArgumentNullException(nameof(httpClientFactory)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _apiDescriptionProvider = apiDescriptionProvider ?? throw new ArgumentNullException(nameof(apiDescriptionProvider)); }
public void Setup() { _options = new RepositoryAgentOptions(); _httpClientFactory = new Mock <IHttpClientFactory>(); _apiDescriptionProvider = new Mock <IApiDescriptionProvider>(); _repositoryClient = new ServiceRepositoryClient(_options, _httpClientFactory.Object, new Mock <ILogger <ServiceRepositoryClient> >().Object, _apiDescriptionProvider.Object); _httpClientTestingFactory = new HttpClientTestingFactory(); _httpClientTestingFactory.HttpClient.BaseAddress = new Uri("http://repository.com"); _httpClientFactory.Setup(f => f.CreateClient(ServiceRepositoryClient.HTTPCLIENT_NAME)).Returns(_httpClientTestingFactory.HttpClient); }
/// <summary> /// Adds the repository agent services to the collection. /// </summary> /// <param name="services">The service collection.</param> /// <param name="setupBuilder">Delegate to define the configuration.</param> /// <returns></returns> /// <exception cref="System.ArgumentNullException"> /// services /// or /// setupBuilder /// </exception> public static IServiceRepositoryAgentBuilder AddServiceRepositoryAgent(this IServiceCollection services, Action <RepositoryAgentOptions> setupBuilder) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (setupBuilder == null) { throw new ArgumentNullException(nameof(setupBuilder)); } var options = new RepositoryAgentOptions(); setupBuilder(options); return(AddServiceRepositoryAgent(services, options)); }
public void Setup() { _options = new RepositoryAgentOptions(); }
/// <summary> /// Adds the repository agent services to the collection. /// </summary> /// <param name="services">The service collection.</param> /// <param name="options">The agent options.</param> /// <returns></returns> /// <exception cref="System.ArgumentNullException"> /// services /// or /// options /// </exception> public static IServiceRepositoryAgentBuilder AddServiceRepositoryAgent(this IServiceCollection services, RepositoryAgentOptions options) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } options.Validate(); services.AddSingleton(options); services.AddSingleton <IServiceRepositoryClient, ServiceRepositoryClient>(); services.AddHttpClient(ServiceRepositoryClient.HTTPCLIENT_NAME, client => { client.BaseAddress = options.Repository; client.DefaultRequestHeaders.Add("Accept", "application/json"); client.DefaultRequestHeaders.Add("User-Agent", $"ServiceRepositoryClient - {Assembly.GetExecutingAssembly().GetName().Version} - {options.ServiceIdentifier}"); }); return(new ServiceRepositoryAgentBuilder(services)); }