Beispiel #1
0
        public void Create_WhenArgumentIsValid_IsIdempotent()
        {
            IX509ChainBuildPolicy policy0 = X509ChainBuildPolicyFactory.Create(EnvironmentVariableWrapper.Instance);
            IX509ChainBuildPolicy policy1 = X509ChainBuildPolicyFactory.Create(EnvironmentVariableWrapper.Instance);

            Assert.Same(policy0, policy1);
        }
        public void Instance_Always_IsIdempotent()
        {
            IX509ChainBuildPolicy instance0 = DefaultX509ChainBuildPolicy.Instance;
            IX509ChainBuildPolicy instance1 = DefaultX509ChainBuildPolicy.Instance;

            Assert.Same(instance0, instance1);
        }
Beispiel #3
0
        public void CreateWithoutCaching_OnNonWindowsAlways_ReturnsDefaultPolicy()
        {
            var reader = new Mock <IEnvironmentVariableReader>(MockBehavior.Strict);

            IX509ChainBuildPolicy policy = X509ChainBuildPolicyFactory.CreateWithoutCaching(reader.Object);

            Assert.IsType <DefaultX509ChainBuildPolicy>(policy);

            reader.VerifyAll();
        }
Beispiel #4
0
        public void CreateWithoutCaching_OnWindowsWhenEnvironmentVariableIsInvalid_ReturnsDefaultPolicy(string value)
        {
            Mock <IEnvironmentVariableReader> reader = CreateMockEnvironmentVariableReader(value);

            IX509ChainBuildPolicy policy = X509ChainBuildPolicyFactory.CreateWithoutCaching(reader.Object);

            Assert.IsType <DefaultX509ChainBuildPolicy>(policy);

            reader.VerifyAll();
        }
        internal static bool BuildWithPolicy(X509Chain chain, X509Certificate2 certificate)
        {
            if (chain is null)
            {
                throw new ArgumentNullException(nameof(chain));
            }

            if (certificate is null)
            {
                throw new ArgumentNullException(nameof(certificate));
            }

            IX509ChainBuildPolicy policy = X509ChainBuildPolicyFactory.Create(EnvironmentVariableWrapper.Instance);

            return(policy.Build(chain, certificate));
        }
Beispiel #6
0
        public void CreateWithoutCaching_OnWindowsWhenEnvironmentVariableIsValid_ReturnsRetriablePolicy(string value)
        {
            Mock <IEnvironmentVariableReader> reader = CreateMockEnvironmentVariableReader(value);

            IX509ChainBuildPolicy policy = X509ChainBuildPolicyFactory.CreateWithoutCaching(reader.Object);

            Assert.IsType <RetriableX509ChainBuildPolicy>(policy);

            var retryPolicy = (RetriableX509ChainBuildPolicy)policy;

            string[] parts = value.Split(X509ChainBuildPolicyFactory.ValueDelimiter);
            int      expectedRetryCount    = int.Parse(parts[0]);
            TimeSpan expectedSleepInterval = TimeSpan.FromMilliseconds(int.Parse(parts[1]));

            Assert.Equal(expectedRetryCount, retryPolicy.RetryCount);
            Assert.Equal(expectedSleepInterval, retryPolicy.SleepInterval);

            reader.VerifyAll();
        }
        internal RetriableX509ChainBuildPolicy(IX509ChainBuildPolicy innerPolicy, int retryCount, TimeSpan sleepInterval)
        {
            if (innerPolicy is null)
            {
                throw new ArgumentNullException(nameof(innerPolicy));
            }

            if (retryCount < 1)
            {
                throw new ArgumentOutOfRangeException(nameof(retryCount));
            }

            if (sleepInterval < TimeSpan.Zero)
            {
                throw new ArgumentOutOfRangeException(nameof(sleepInterval));
            }

            InnerPolicy   = innerPolicy;
            RetryCount    = retryCount;
            SleepInterval = sleepInterval;
        }