Beispiel #1
0
        public void Build_WhenArgumentsAreValidAndBuildFailureIsRetriable_Retries()
        {
            var innerPolicy = new Mock <IX509ChainBuildPolicy>(MockBehavior.Strict);
            var policy      = new RetriableX509ChainBuildPolicy(innerPolicy.Object, retryCount: 3, TimeSpan.FromMilliseconds(50));

            using (var chain = new X509Chain())
                using (X509Certificate2 certificate = _fixture.GetDefaultCertificate())
                {
                    innerPolicy.Setup(
                        x => x.Build(
                            It.Is <X509Chain>(chainArg => ReferenceEquals(chainArg, chain)),
                            It.Is <X509Certificate2>(certArg => ReferenceEquals(certArg, certificate))))
                    .Returns(false);
                    innerPolicy.Setup(
                        x => x.Build(
                            It.Is <X509Chain>(chainArg => ReferenceEquals(chainArg, chain)),
                            It.Is <X509Certificate2>(certArg => ReferenceEquals(certArg, certificate))))
                    .Returns(false);
                    innerPolicy.Setup(
                        x => x.Build(
                            It.Is <X509Chain>(chainArg => ReferenceEquals(chainArg, chain)),
                            It.Is <X509Certificate2>(certArg => ReferenceEquals(certArg, certificate))))
                    .Returns(true);

                    bool actualResult = policy.Build(chain, certificate);

                    Assert.True(actualResult);

                    innerPolicy.VerifyAll();
                }
        }
Beispiel #2
0
        public void Create_WhenCertificateIsNull_Throws()
        {
            var innerPolicy = new Mock <IX509ChainBuildPolicy>(MockBehavior.Strict);
            var policy      = new RetriableX509ChainBuildPolicy(innerPolicy.Object, retryCount: 1, TimeSpan.Zero);

            using (var chain = new X509Chain())
            {
                ArgumentNullException exception = Assert.Throws <ArgumentNullException>(
                    () => policy.Build(chain, certificate: null));

                Assert.Equal("certificate", exception.ParamName);

                innerPolicy.VerifyAll();
            }
        }
Beispiel #3
0
        public void Build_WhenBuildIsNull_Throws()
        {
            var innerPolicy = new Mock <IX509ChainBuildPolicy>(MockBehavior.Strict);
            var policy      = new RetriableX509ChainBuildPolicy(innerPolicy.Object, retryCount: 1, TimeSpan.Zero);

            using (X509Certificate2 certificate = _fixture.GetDefaultCertificate())
            {
                ArgumentNullException exception = Assert.Throws <ArgumentNullException>(
                    () => policy.Build(chain: null, certificate));

                Assert.Equal("chain", exception.ParamName);

                innerPolicy.VerifyAll();
            }
        }
Beispiel #4
0
        public void Constructor_WhenArgumentsAreValid_InitializesProperties(
            int expectedRetryCount,
            int expectedMilliseconds)
        {
            var      innerPolicy           = new Mock <IX509ChainBuildPolicy>(MockBehavior.Strict);
            TimeSpan expectedSleepInterval = TimeSpan.FromSeconds(expectedMilliseconds);

            var policy = new RetriableX509ChainBuildPolicy(innerPolicy.Object, expectedRetryCount, expectedSleepInterval);

            Assert.Same(innerPolicy.Object, policy.InnerPolicy);
            Assert.Equal(expectedRetryCount, policy.RetryCount);
            Assert.Equal(expectedSleepInterval, policy.SleepInterval);

            innerPolicy.VerifyAll();
        }