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); }
public void CreateWithoutCaching_OnNonWindowsAlways_ReturnsDefaultPolicy() { var reader = new Mock <IEnvironmentVariableReader>(MockBehavior.Strict); IX509ChainBuildPolicy policy = X509ChainBuildPolicyFactory.CreateWithoutCaching(reader.Object); Assert.IsType <DefaultX509ChainBuildPolicy>(policy); reader.VerifyAll(); }
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)); }
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; }