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));
 }
Example #2
0
        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);
        }
Example #3
0
        /// <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));
        }
Example #4
0
 public void Setup()
 {
     _options = new RepositoryAgentOptions();
 }
Example #5
0
        /// <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));
        }