namespace Polly8Study.Test
{
    /// <summary>
    /// Polly8超时策略 测试
    /// 关键:
    ///     CancellationToken,没有这个是不起使用的
    ///     就是之前版本中的乐观超时,悲观超时貌似取消了
    /// </summary>
    public class Polly8RetryStrategyTest
    {
        private readonly ITestOutputHelper _output;

        public Polly8RetryStrategyTest(ITestOutputHelper testOutput)
        {
            _output = testOutput;
        }

        /// <summary>
        /// 重试策略
        /// </summary>
        [Fact]
        public void Test()
        {
            ResiliencePipeline pipeline = new ResiliencePipelineBuilder()
                .AddRetry(new RetryStrategyOptions
                {
                    ShouldHandle = new Polly.PredicateBuilder().Handle<Exception>(),
                    Delay = TimeSpan.FromSeconds(1),
                    MaxRetryAttempts = 3,
                    BackoffType = DelayBackoffType.Constant
                })
                .Build(); // After all necessary strategies are added, call Build() to create the pipeline.

            // Synchronous execution
            pipeline.Execute(static () =>
            {
                // Your code goes here
            });
        }

    }
}