public void TestAndRetryCondition()
        {
            var retryPolicyContext = new RetryPolicyContext(null, "200", 2, "ecs", "2014-05-26",
                                                            "DescribeInstances", RetryCondition.BlankStatus);

            var retryOnApiCondition = new RetryOnApiCondition();

            var orList = new List <IAlibabaRetryCondition>
            {
                retryOnApiCondition
            };

            var orRetryCondition = new OrRetryCondition(orList);

            var maxRetryTimesCondition = new MaxRetryTimesCondition(3);

            var andList = new List <IAlibabaRetryCondition>
            {
                orRetryCondition,
                maxRetryTimesCondition
            };

            var andRetryCondition = new AndRetryCondition(andList);

            var shouldRetry = andRetryCondition.ShouldRetry(retryPolicyContext);

            Assert.Equal(RetryCondition.ShouldRetry, shouldRetry);
        }
예제 #2
0
        public void TestOrRetryCondition()
        {
            var retryPolicyContext = new RetryPolicyContext(null, "200", 2, "ecs", "2014-05-26",
                                                            "DescribeInstances", RetryCondition.BlankStatus);

            var retryOnApiCondition       = new RetryOnApiCondition();
            var retryOnApiWithClientToken = new RetryOnApiWithClientTokenCondition();

            var orList = new List <IAlibabaRetryCondition>
            {
                retryOnApiCondition,
                retryOnApiWithClientToken
            };

            var orRetryCondition = new OrRetryCondition(orList);

            var shouldRetry = orRetryCondition.ShouldRetry(retryPolicyContext);

            Assert.Equal(RetryCondition.ShouldRetry | RetryCondition.ShouldRetryWithThrottlingBackoff, shouldRetry);
        }