public ReservationsClientTestFixtures()
        {
            HttpHelper = new Mock <IHttpHelper>();
            Config     = new ReservationsClientApiConfiguration
            {
                ApiBaseUrl = "https://somehost"
            };

            AutoFixture = new Fixture();

            ReservationsApiClient = new ReservationsApiClient(Config, HttpHelper.Object);
        }
        private HttpClient CreateHttpClient(IContext ctx, ReservationsClientApiConfiguration config)
        {
            if (config.UseStub)
            {
                return(new HttpClient());
            }

            var loggerFactory         = ctx.GetInstance <ILoggerFactory>();
            var activeDirectoryConfig = new ReservationsClientApiConfigurationADAdapter(config);
            var httpClientFactory     = new AzureActiveDirectoryHttpClientFactory(activeDirectoryConfig, loggerFactory);

            return(httpClientFactory.CreateHttpClient());
        }
        private HttpClient CreateHttpClient(IContext ctx, ReservationsClientApiConfiguration config)
        {
            if (config.UseStub)
            {
                return(new HttpClient());
            }

            var adConfig    = new ReservationsClientApiConfigurationADAdapter(config);
            var bearerToken = new AzureActiveDirectoryBearerTokenGenerator(adConfig);

            return(new HttpClientBuilder()
                   .WithBearerAuthorisationHeader(bearerToken)
                   .WithHandler(new NLog.Logger.Web.MessageHandlers.RequestIdMessageRequestHandler())
                   .WithHandler(new NLog.Logger.Web.MessageHandlers.SessionIdMessageRequestHandler())
                   .WithDefaultHeaders()
                   .Build());
        }
 public ReservationsClientApiConfigurationADAdapter(ReservationsClientApiConfiguration config)
 {
     _config = config;
 }
 public ReservationsApiClient(ReservationsClientApiConfiguration config, IHttpHelper httpHelper)
 {
     _config     = config ?? throw new ArgumentNullException(nameof(config));
     _httpHelper = httpHelper ?? throw new ArgumentNullException(nameof(httpHelper));
 }