public void CachingVerifyDisabledNullCacheSettings()
        {
            var policyIndex      = new CertPolicyIndexStub();
            var policyExpression = new KeyUsageExtensionField(false);
            var emailAddress     = new MailAddress(Email);

            policyIndex.Add(emailAddress.Host, policyExpression);

            var resolver = new PolicyResolver(policyIndex, null);
            var source   = resolver.GetIncomingPolicy(emailAddress);

            Assert.Null(resolver.Cache);
            Assert.True(source.Count > 0);
        }
        private void CachingPolicyNotFound(PolicyResolver resolver, CacheSettings cacheSettings)
        {
            var emailAddress = new MailAddress(EmailDoesNotExist);
            var source       = resolver.GetIncomingPolicy(emailAddress);
            var cached       = resolver.Cache.Get(emailAddress.Host);

            VerifyCertNotFound(source, cached, cacheSettings.NegativeCache);

            // now get it served from the cache.
            source = resolver.GetIncomingPolicy(emailAddress);
            cached = resolver.Cache.Get(emailAddress.Host);

            VerifyCertNotFound(source, cached, cacheSettings.NegativeCache);
        }
        /// <summary>
        /// Construct with <see cref="CertPolicyServiceResolverSettingsSection"/>
        /// </summary>
        /// <param name="settings"></param>
        public CertPolicyResolver(CertPolicyServiceResolverSettingsSection settings)
        {
            var settings1 = settings;

            if (settings1.CacheSettings != null && settings1.CacheSettings.Cache)
            {
                var cacheSettings = new CacheSettings
                {
                    Cache           = settings1.CacheSettings.Cache,
                    CacheTTLSeconds = settings1.CacheSettings.CacheTTLSeconds,
                    Name            = "cerPolicy"
                };

                m_Resolver =
                    new PolicyResolver(new CertPolicyIndex(settings1.ClientSettings), cacheSettings);
            }

            else
            {
                m_Resolver =
                    new PolicyResolver(new CertPolicyIndex(settings1.ClientSettings), null);
            }
        }