I am trying to understand how HttpClient has been implemented for Captcha in Nop Commerce and for the sake of testability how creating new instance of HttpClient has been manage in Nop Commerce project.
I came across ValidateCaptchaAttribute and ValidateCaptchaFilter and I see HttpClient has been wrapped inside CaptchaHttpClient class 
but I don't understand from where does CaptchaHttpClient receive dependency for HttpClient and from where constructor of CaptchaHttpClient class is being called.
Inside ServiceCollectionExtensions class I see below code: 
public static void AddNopHttpClients(this IServiceCollection services)
 {
    //default client
    services.AddHttpClient(NopHttpDefaults.DefaultHttpClient).WithProxy();
    //client to request current store
    services.AddHttpClient<StoreHttpClient>();
    //client to request nopCommerce official site
    services.AddHttpClient<NopHttpClient>().WithProxy();
    //client to request reCAPTCHA service
    services.AddHttpClient<CaptchaHttpClient>().WithProxy();
 }
But I don't see where HttpClient object is created:
var client = new HttpClient() // Where this is done?
Am I perhaps missing something?
Nop Commerce Version = 4.20
 
     
     
     
    