public void WithFactory_SDKLocalCache()
        {
            var clientConfig    = new MyClientConfig();
            var myClientFactory = new MyAdvancedClientFactory(true, false, null);

            clientConfig.HttpClientCacheSize = DefaultHttpCacheSize;
            clientConfig.HttpClientFactory   = myClientFactory;

            RunTest(clientConfig, DefaultHttpCacheSize * 2, true, false, DefaultHttpCacheSize, null);
            Assert.Equal(DefaultHttpCacheSize, myClientFactory.UncachedClients.Count);
        }
        public void WithFactory_SDKGlobalCache()
        {
            var configUniqueString = Guid.NewGuid().ToString();
            var clientConfig       = new MyClientConfig();
            var myClientFactory    = new MyAdvancedClientFactory(true, false, configUniqueString);

            clientConfig.HttpClientCacheSize = DefaultHttpCacheSize;
            clientConfig.HttpClientFactory   = myClientFactory;

            RunTest(clientConfig, DefaultHttpCacheSize * 2, true, true, DefaultHttpCacheSize, configUniqueString);
            Assert.Equal(DefaultHttpCacheSize, myClientFactory.UncachedClients.Count);
        }
        public void WithFactory_ExternalCache()
        {
            var clientConfig    = new MyClientConfig();
            var myClientFactory = new MyAdvancedClientFactory(false, false, null);

            clientConfig.HttpClientCacheSize = DefaultHttpCacheSize;
            clientConfig.HttpClientFactory   = myClientFactory;

            RunTest(clientConfig, 1, false, false, null, null);
            var actualCacheSize = ((HttpClient[])ReflectionHelpers.Invoke(myClientFactory.ClientCache, "_clients")).Length;

            Assert.Equal(DefaultHttpCacheSize, actualCacheSize);
        }